大数据结构-实验8查找地算法.doc
《大数据结构-实验8查找地算法.doc》由会员分享,可在线阅读,更多相关《大数据结构-实验8查找地算法.doc(13页珍藏版)》请在三一办公上搜索。
1、8.1 实现顺序查找的算法一, 实验目的1.熟悉掌握各种查找方法,深刻理解各种查找算法与其执行的过程;2.学会分析各种查找算法的性能。二, 实验内容8.1 实现顺序查找的算法编写一个程序,输出在顺序表3,6,2,10,1,8,5,7,4,9中采用顺序查找法查找关键字5的结果。8.2 实现折半查找算法编写一个程序,输出在顺序表1,2,3,4,5,6,7,8,9,10中采用折半查找方法查找关键字9的结果。要求:1用非递归方法;2用递归方法。8.3 实现二叉排序树的根本运算编写一个程序实现二叉排序树的根本运算,并在此根底上完成如下功能:1由4,9,0,1,8,6,3,5,2,7创建一个二叉排序树bt
2、;2判断bt是否为一棵二叉排序树提示:在遍历过程中检查是否符合二叉排序树定义;3采用非递归方法查找关键字为6的结点,并输出其查找路径提示:查找过程中保存经过的结点信息,找到后顺序输出之。8.4 实现哈希表的相关运算编写一个程序,实现哈希表的相关运算,并在此根底上完成如下功能:1建立16,74,60,43,54,90,46,31,29,88,77哈希表A012,哈希函数为H(k)=key % 11,并采用线性探测法解决冲突。输出哈希表;2在上述哈希表中查找关键字为29的记录;3在上述哈希表中删除关键字为77的记录,再将其插入,然后输出哈希表。要求:输出格式哈希地址:0 1 2 . 12关键字值:
3、三, 源代码与结果截图/实现顺序查找的算法#include #define MAXL 100/定义表中最多记录个数typedef int KeyType;typedef int InfoType;typedef struct KeyType key; /KeyType为关键字的数据类型 InfoType data; /其他数据 NodeType;typedef NodeType SeqListMAXL; /顺序表类型int Search(SeqList R,int n,KeyType k) /顺序查找算法 int i=0; while (i=n) return -1; else printf(
4、%d,Ri.key);return i;void main()SeqList R;int n=10;KeyType k=5;InfoType a=3,6,2,10,1,8,5,7,4,9;int i;for (i=0;in;i+)/建立顺序表Ri.key=ai;printf(查找结果:n);if (i=Search(R,n,k)!=-1)printf(n元素%d的位置是:%d,k,i);elseprintf(n元素%d不在表中n,k);printf(n);/实现折半查找算法#include #define MAXL 100/定义表中最多记录个数 typedef int KeyType;type
5、def char InfoType10;typedef struct KeyType key; /KeyType为关键字的数据类型 InfoType data; /其他数据 NodeType;typedef NodeType SeqListMAXL;/顺序表类型int BinSearch1(SeqList R,int n,KeyType k) /非递归二分查找算法int low=0,high=n-1,mid,count=0;while (lowk) /继续在Rlow.mid-1中查找 high=mid-1;elselow=mid+1; /继续在Rmid+1.high中查找 return -1;
6、int BinSearch2(SeqList R,KeyType k,int low,int high,int count) /递归二分查找算法int mid;if(lowk) /继续在Rlow.mid-1中查找 BinSearch2(R, k,low,mid-1,count);elseBinSearch2(R, k,mid+1,high,count); /继续在Rmid+1.high中查找 else return -1;void main()SeqList R;KeyType k=9;int a=1,2,3,4,5,6,7,8,9,10,i,n=10;for (i=0;in;i+)/建立顺序
7、表 Ri.key=ai;printf(用非递归方法:n);if (i=BinSearch1(R,n,k)!=-1)printf(元素%d的位置是%dn,k,i);elseprintf(元素%d不在表中n,k);printf(用递归方法:n);if (i=BinSearch2(R,k,0,9,0)!=-1)printf(元素%d的位置是%dn,k,i);elseprintf(元素%d不在表中n,k);/实现二叉排序树的根本运算#include /EOF,NULL#include /atoi( )#include /cout,cintypedef int Status;typedef struct
8、 BTNode int key; struct BTNode *lchild; struct BTNode *rchild;BTNode;/定义二叉排序树插入结点的算法int BSTInsert(BTNode *&T,int k) if(T=NULL) T=(BTNode *)malloc(sizeof(BTNode); T-lchild=T-rchild=NULL; T-key=k; return 1; else if(k=T-key) return 0; else if(kkey) return BSTInsert(T-lchild, k); else return BSTInsert(T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 查找 算法
链接地址:https://www.31ppt.com/p-1131933.html