《C++ 实现顺序查找算法.docx》由会员分享,可在线阅读,更多相关《C++ 实现顺序查找算法.docx(4页珍藏版)》请在三一办公上搜索。
1、C+ 实现顺序查找算法实验4 顺序查找算法实现实验 一. 实验目的 1.学生在实习中体会各种查找算法的基本思想、适用场合,理解开发高效算法的可能性和寻找、构造高效算法的方法。 2.掌握运用查找解决一些实际应用问题。 二. 实验内容 用C+描述并实现主要查找算法及其主要操作,其逻辑结构参阅教科书P271/中文版P224。实现要求如下:1)实现顺序查找算法,(参考程序如下) #include using namespace std; typedef int KeyType; / 关键字的类型 const int MAXSIZE=100; / 数组的容量 struct ElemType /学生的记录
2、信息 KeyType key ; /学号 char name10; /姓名 int english; /成绩 int math; /成绩 ; class List public: ElemType *ht; /表数组 int length; /表大小 /KeyType p; / 除留余数法的大质数 public: List( int n1,int p1); Listdelete ht; length=0; /int find( KeyType k ); int search( KeyType k ); /void creat_hash; void PrintOut; ; /- List:Lis
3、t(int n1,int p1) int num=0; length=n1; p=p1; ht=new ElemTypelength; for(int i=0;ilength;i+)hti.key=-1; void List:creat_hash int i,j,K,en,ma;char na10; coutK; while(K!=-1&numlength) coutnaenma; hti.key=K; strcpy(hti.name,na); /用串拷贝赋值 hti.english=en; hti.math=ma; / 插入学生记录K coutn 插入成功! ; num+; coutK; /
4、查询某关键字的记录 int List:search( KeyType k ) for(i=0;ilength;i+) if(K=hti.key) return i; void List:PrintOut int i,j; for (i=0;ilength; i+) if(hti.key!=-1) coutn i=i 学号:hti.key 姓名:hti.name 英语成绩:hti.english 高数成绩:hti.math; int main int p0,n0; coutp0; List ha(n0,p0); ElemType a; int k; char ch; do coutnnn; co
5、utn 1. 建立哈希表 ; coutn 2. 在哈希表中查找某位学生; coutn 3. 输出哈希表; coutn 4. 结束; coutn=; coutk; switch(k) case 1: ha.creat_hash; break; case 2: couta.key; int i=ha.search(a.key); if(i=-1) coutn 此学生a.key 不存在! ; else coutn i=i 学号:ha.hti.key 姓名:ha.hti.name 英语成绩:ha.hti.english 高数成绩:=1&k=3); getchar; return 0; 3、实验结果 4、总结: 1.顺序查找法就如同数组的遍历,从数组的第一个元素开始,检查数组的每一个元素,以便确定是否有查找的数据。 由于是从头检查到尾,所以数组数据是否已经排序已经不重要。 2.动手实践,动脑思考,理论知识要结合熟练操作,这样学习才会记忆深刻。