资源描述:
《实验报告--第九章--2011211102--车红岫》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验名称:第9章实验实验类型:验证性实验班级:20112111学号:2011211102姓名:车红岫实验日期:2013.61.问题描述以下四个验证性实验都做。(1)顺序查找验证(2)折半查找验证(3)二叉排序树的建立(4)哈希表的建立2.数据结构设计(1)顺序查找验证typedefstruct{KeyType*elem;//零号单元留空intlength;//表长度}SSTable;(2)折半查找验证intscore[100];intlength;intkey;(3)二叉排序树的建立typedefstructnode{datatypekey;
2、structnode*lchild,*rchild;}bsnode;(4)哈希表的建立typedefstructLnode{intdata;structLnode*next;}Lnode,*ListLink;//建立链表结点typedefstruct{intpos;ListLinkfirstnode;//建立数组结点}HashBox;typedefstruct{HashBoxHArrary[INIT_MAXSIZE];//建立哈希数组(哈希表的地址表头)}HashArray;3.算法设计4.界面设计(1)顺序查找验证(2)折半查找验证(3)二
3、叉排序树的建立(4)哈希表的建立5.运行、测试(一)顺序查找验证(1)运行程序,显示菜单(2)输入n(3)输出结果(二)折半查找验证(1)运行程序,显示菜单(2)输入n(3)输出结果(二)二叉排序树的建立(1)运行程序,显示菜单(2)输入n(3)输出结果(四)哈希表的建立(1)运行程序,显示菜单(2)输入n(3)输出结果6.实验收获及思考建立哈希表时没有考虑冲突处理问题,做程序时要谨慎小心。附录:源代码(1)顺序查找验证#include#include#defineMAX_LENGTH100typedef
4、intKeyType;typedefstruct{KeyType*elem;//零号单元留空intlength;//表长度}SSTable;intSearch_Seq(SSTableST,KeyTypekey){inti;ST.elem[0]=key;//“哨兵”for(i=ST.length;ST.elem[i]!=key;i--);//从后往前找returni;//找不到时,i为0}voidmain(){inti,key;SSTableT;T.elem=(KeyType*)malloc(sizeof(KeyType));printf("输
5、入数据个数");scanf("%d",&T.length);for(i=1;i<=T.length;i++){printf("输入数据%d;",i);scanf("%d",&T.elem[i]);}for(i=1;i<=T.length;i++)printf("%5d",T.elem[i]);printf("输入要查找的数据");scanf("%d",&key);i=Search_Seq(T,key);printf("位置是%d",i);system("pause");}(2)折半查找验证#include
6、#include#defineOK1#defineERROR0voidmain(){intscore[100];intlength;intkey;printf("输入数据个数:");scanf("%d",&length);for(inti=1;i<=length;i++){printf("输入第%d个元素",i);scanf("%d",&score[i]);}printf("输入要查找的关键字");scanf("%d",&key);intlow,high,mid;low=1;high=length;while(
7、low<=high){mid=(low+high)/2;if(score[mid]==key)//找到待查元素{printf("数据位置%d",mid);system("pause");}elseif(keyscore[mid])low=mid+1;//继续在后半区间进行查找}printf("无此数据");system("pause");}(3)二叉排序树的建立#include#includetypedefint
8、datatype;typedefstructnode{datatypekey;structnode*lchild,*rchild;}bsnode;typedefbs