上机实验指导
(一)菜单的制作
本例介绍了菜单的制作方法,实现的是菜单显示课程的简称,选择菜单选项后显示相应课程的全称。目的是练习菜单的制作过程。 #include
for(;;) { }
switch(menu_select()) {
case 1:printf(\
break;
case 2:printf(\VA Language\\n\
break;
case 3:printf(\
break;
case 4:printf(\
break;
case 5:printf(\
break;
case 0:printf(\ }
exit(0);
- 46 -
int menu_select() { int sn; printf(\ printf(\VA\\n\ printf(\ printf(\ printf(\ printf(\ printf(\~5:\ for(; ;) { scanf(\ if(sn<0||sn>5) printf(\输入错误,重选0~5:\
else
break;
} return sn;
}
(二)动态顺序表的实现
(1)完成对动态顺序表的如下操作:
1.构造空的顺序表 2.创建 3.查找 4.插入 5.删除 6.显示 *7.归并 0.退出(2)预编译命令与类型定义 #include
#define OVERFLOW -2 //请注意,以上5行预编译命令在所有实验都加
- 47 -
#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef int Status; typedef int ElemType; typedef struct {
ElemType *elem; int length; int listsize;
//表存储空间的初始分配量 // 线性表存储空间的分配增量
// 存储空间基址 // 当前长度
// 当前分配的存储容量(以sizeof(ElemType)为单位)
} SqList;
(三)单链表的实现
(1)完成对单链表的如下操作:
1.构造空链 2.创建 3.查找 4.插入 5.删除 6.显示 *7. 排序 0.退出 (2)预编译命令与类型定义 typedef int Status; typedef char ElemType; typedef struct LNode {
ElemType data; struct LNode *next;
}LNode,*LinkList;
*(四)多项式加法的实现 (1)完成2个多项式的加法
(2)预编译命令与类型定义、函数首部 typedef int Status; typedef struct {
float coef;
- 48 -
int expn;
} term, ElemType;
//数据元素为结构体类型
typedef struct LNode { ElemType data;
struct LNode *next;
}LNode, *LinkList;
typedef LinkList polynomial;
void CreatPolyn ( polynomial &P, int m); void PrintList_L(LinkList &L); int cmp (term a , term b);
void AddPolyn (polynomial &Pa, polynomial &Pb); (3)显示多项式与比较指数的函数 void PrintList_L(LinkList &L) //显示多项式
{ LinkList p; p=L->next;
printf(\ p=p->next; while(p) { printf(\ p=p->next;
}
printf(\
}
int cmp (term a , term b)
//依a的指数值<(或 = )(或>)b的数值部分,分别返回-1,0,和+1 {
int c;
- 49 -
}
if(a.expn *(五)链式栈的实现 (1)完成对链式栈的如下操作: 1.构造空栈 2.创建栈 3.查找 4.入栈 5.出栈 6.显示 *7. 括号匹配 0.退出 (2)预编译命令与类型定义 同单链表的实现 拓展:也可以用顺序栈实现括号匹配算法。 (六)循环队列的实现 (1)完成对循环队列的如下操作: 1.构造空队列 2.创建队列 3.求队列的长度 4.入队列 5.出队列 6.显示 0.退出 (2)预编译命令与类型定义 #define MAXQSIZE 100 //最大队列长度 typedef int Status; typedef int QElemType; typedef struct { QElemType *base; // 动态分配存储空间 int front; // 头指针,若队列不空, 指向队列头元素 int rear; // 尾指针,若队列不空,指向队列尾元素的下一个位置 } SqQueue; 拓展:循环队列的最大队列长度可以做成构造空队列函数的参数。 (七)二叉树的实现 (1)完成对二叉链表的如下操作: 1.构造空二叉树 2.创建二叉树 3. 销毁二叉树 - 50 - 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构试题在线全文阅读。
相关推荐: