当前位置:首页 > 《数据结构实验指导书》
第一部分 上机实践
void CreatTable(stuType stus[], int n) //创建n个学生信息的表stus { int i;
printf(\输入%d个学生信息(学号 姓名 成绩):\\n\ for(i=1; i<=n; i++)
scanf(\}
int SearchByName(stuType stus[], int n, char name[]) //按姓名查找 { int i;
strcpy(stus[0].name,name);
for(i=n; strcmp(stus[i].name,name)!=0; i--); return i; }
int SearchByNum(stuType stus[], int n, int num) //按学号进行顺序查找 { //在此给出设计完成的代码 }
void menuPrint()
{ printf(\查找*****\\n\ printf(\按学号查找\\n\ printf(\按姓名查找\\n\ printf(\退出\\n\ printf(\请选择:\}
int main()
{ stuType stus[40]; int num;
char name[20];
int n=6, select, loc; CreatTable(stus,n); menuPrint();
scanf(\
-39-
第一部分 上机实践
while(select) { if(select==1)
{ printf(\输入学号:\ loc=SearchByNum(stus,n,num);
if(loc) printf(\ else printf(\”); }
if(select==2)
{ printf(\输入姓名:\ loc=SearchByName(stus,n,name);
if(loc) printf(\ else printf(\”); }
else return;
menuPrint(); scanf(\ }
return 0; }
2.折半查找算法设计
将顺序查找算法设计程序中的按学号查找算法改为折半查找算法,然后现重新调试运行程序。注意创建学生表时,必须按学号的升序(或降序)的顺序输入。
int SearchByNum(stuType stus[], int n, int num) //按学号进行折半查找 { //在此给出设计完成的代码 }
-40-
第一部分 上机实践
3.二叉排序树
如下给出了二叉排序树的动态查找及创建及中序遍历算法的程序的主要代码和框架。参考本程序,同学们可在课外完成二叉排序树的相关内容。
#include \#include \typedef struct BNode { int data;
struct BNode *lchild; struct BNode *rchild; } *BiTree;
int Search_D(BiTree T, int key,BiTree &q) //动态查找算法 { //代码略 }
void CreatBST(BiTree &T) //创建算法 { int key,flag;
BiTree p,q; T=NULL;
printf(\输入一序列(以-999)结束,来创建BST树\\n\
scanf(\ while(key!=-999)
{ flag=Search_D(T,key,q);
if(!flag)
{ p=(BiTree)malloc(sizeof(struct BNode));
p->data=key;p->lchild=p->rchild=NULL; if(!q) T=p;
else if(key
}
scanf(\
}
}
void InorderOutput(BiTree T) //递归实现中序输出二叉排序树T中的各个元素 { //代码略 }
int main() { BiTree T;
CreatBST(T); InorderOutput(T); return 0;
}
-41-
第一部分 上机实践
-42-
成绩:
四、实验总结
共分享92篇相关文档