ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:21.52KB ,
资源ID:19518030      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19518030.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构作业文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构作业文档格式.docx

1、 char key_code10; /*哈希表地址*/ struct Node *next;Node;typedef struct hashtable /*创建哈希表*/ int key;HashTableMAX;typedef struct ArcCell/弧信息int adj; /权值,顶点距离ArcCell;typedef struct VertexType/顶点类型int number;char *sight; /景点名称char *description;/景点介绍VertexType;typedef struct VertexType vexNUM;/顶点向量ArcCell arc

2、sNUMNUM;/数组表示,邻接矩阵int vexnum,arcnum;/图的当前顶点数和弧数MGraph;typedef struct Node char data; struct Node *LChild; struct Node *RChild;BiTNode,*BiTree;typedef struct char *ch; int len;HString;/-文本处理器/-paixuint shell(struct node a30,int n) int i,j,t;for(t=n/2;t=1;t=t/2) for(i=t+1;i=n;i+)if(ai.kai-t.k) a0.k=ai

3、.k;for(j=i-t;a0.k0;j=j-t) aj+t.k=aj.k; aj+t.k=a0.k; return 0;/快速排序 int partition(struct node a30,int s1,int s2) int i,j;i=s1;j=s2;a0.k=as1.k;while(ij)while (ij&=aj.k) j-;if(iai.k=aj.k;i+;ai.k=a0.k) i+;j) aj.k=ai.k;j-;ai.k=a0.k;return i;void quick(struct node a30,int s1,int s2) int m,i,j;if(s1s2)m=pa

4、rtition(a,s1,s2);quick(a,s1,m-1);quick(a,m+1,s2);/ for(i=1;/堆排序 void sift(struct node a30,int p,int m) int i,j,flag,t; flag=ap.k; i=p; j=2*i; t=0; while(j=m&!t)if(jm&aj.k=aj.k) t=1; else ai.k=aj.k; i=j; ai.k=flag;void heap(struct node a30,int n) int i,flag; for(i=n/2;i-i) sift(a,i,n); for(i=n;=2; fl

5、ag=a1.k; a1.k=ai.k; sift(a,1,i-1);/菜单 void Mune()printf(n);请输入你的选择! n1:希尔排序!2:快速排序!3:堆排序!4:退出?int Hash(int key) int mode = key % P; /*除留余数法得到的余数*/ return mode;void Hash_Init(HashTable ht) /*哈希表初始化*/ int i; for(i = 0; i key_code); Node *p; p=(Node*)malloc(sizeof(Node); if(htkey.key = NULLKEY) htkey.k

6、ey = key; htkey.next = node; k+; else if(htkey.key = key) p = htkey.next; while(p-next!= NULL) p = p-next; p-next = node; return 1;Node* Hash_Search(HashTable ht, int key) /*查找函数*/ int p0 = Hash(key); if(htp0.key = NULLKEY) sum+;return NULL; else if(htp0.key = p0) Node *p = htp0.next; while(p != NUL

7、L) if(CharToInt(p-key_code) = key) sum+; return p; sum+; return NULL;int Hash_Create(HashTable ht) /*哈希表长度*/ Node *node; Hash_Init(ht); printf(请输入姓名: /*输入30个姓名*/ for(i=0;30; node = (Node *)malloc(sizeof(Node); scanf(%s,node-key_code); node-next = NULL; Hash_Insert(ht, node);nCreate Successfully!int

8、hash_output(HashTable h) /*哈希表的输出部分*/ Node *a; int i,j,count2=0; a=(Node*)malloc(sizeof(Node); j=0;hashlen; printf(%4d,i);,hi.key); if(hi.next!=0) count2+; j=1; a=hi.next; while(a) printf(-,(*a).key_code); a=(*a).next; j+; count2+=j; return count2;void Hash_Link() /*链表法构造函数*/ HashTable ht; Hash_Crea

9、te(ht); hash_output( ht);count=%dn,k); /*查找总长度*/ASL=%d/30n /*平均查找长度*/请输入要查找的数据: /*输入查找的姓名*/,&key); node = Hash_Search(ht, key);查找次数:%dn,sum); if(node !查找成功! else查找不成功!void hash_create(int h,int status,int data) int address; int di; address=data%P; if(statusaddress=0) haddress=data; statusaddress=1;

10、for(di=1;di=hashlen) return 0;char Menu() char c;int flag;doflag=1;system(cls*n 1、查询景点路径 n 2、查询景点信息 n 3、推荐参观路线 n 4、退出 n请输入您的选择:scanf(%cc);if(c=1|c=234)flag=0;while(flag); return c;char SearchMenu() /查询景点路径*n 1、按照景点编号查询 n 2、按照景点名称查询 n 3、返回 nint num;int i;char name20;c=SearchMenu();switch (c)case :请输入

11、您要查找的景点编号:%dnum);for(i=0;NUM;if(num=G.vexi.number)您要查找景点信息如下:%-25sn,G.vexi.description);按ENTER返回getchar();break;if(i=NUM)没有找到!请输入您要查找的景点名称:,name);if(!strcmp(name,G.vexi.sight)while(c!=void CreateUDN(int v,int a)/采用数组表示法,构造无向图GG.vexnum=v; /初始化图的顶点数和边数G.arcnum=a;G.vexnum;+i) G.vexi.number=i;/初始化每一个顶点的

12、编号G.vex0.sight=大门;G.vex0.description=校园出入的正门。G.vex1.sight=图书馆G.vex1.description=阅览,借阅图书。G.vex2.sight=教学楼G.vex2.description=学生上课的地方G.vex3.sight=食堂一G.vex3.description=吃饭的地方G.vex4.sight=大学生活动中心G.vex4.description=日常庆典活动,社团演出G.vex5.sight=游泳馆G.vex5.description=游泳G.vex6.sight=体育场G.vex6.description=土操场G.vex

13、7.sight=2宿舍G.vex7.description=学生日常生活起居地G.vex8.sight=食堂三G.vex8.description=民族餐厅G.vex9.sight=运动场地G.vex9.description=篮球、排球、足球场地+i)for(j=0;j+j)/初始化邻接矩阵G.arcsij.adj=Max;G.arcs01.adj=G.arcs10.adj=20;G.arcs12.adj=G.arcs21.adj=24;G.arcs13.adj=G.arcs31.adj=26;G.arcs14.adj=G.arcs41.adj=16;G.arcs15.adj=G.arcs5

14、1.adj=50;G.arcs27.adj=G.arcs72.adj=1000;G.arcs34.adj=G.arcs43.adj=34;G.arcs36.adj=G.arcs63.adj=10;G.arcs46.adj=G.arcs64.adj=19;G.arcs56.adj=G.arcs65.adj=25;G.arcs57.adj=G.arcs75.adj=500;G.arcs78.adj=G.arcs87.adj=51;G.arcs79.adj=G.arcs97.adj=200;G.arcs89.adj=G.arcs98.adj=100;void ShortestPath(int num

15、)/最短路径int v,w,i,t;int finalNUM; /辅助数组int min;for(v=0;vv+)finalv=0;Dv=G.arcsnumv.adj;/将num到其余顶点的路径长度初始化为权值for(w=0;ww+)Pvw=0;if(Dv20000) Pvnum=1;Dnum=0;+i) /求v到其余顶点的最短路径min=Max;+w)finalw) /求下一条最短路径 if(Dwmin) v=w;min=Dw;+w) finalw&(min+G.arcsvw.adj)Dw)Dw=min+G.arcsvw.adj;for(t=0;tt+)Pwt=Pvt;void output

16、(int sight1,int sight2) /输出界面int a,b,c,d,q=0;a=sight2;if(a!=sight1) 从%s到%s的最短路径是,G.vexsight1.sight,G.vexsight2.sight);(最短距离为 %dm.,Da);,G.vexsight1.sight);d=sight1;for(c=0;c+c)gate:Pasight1=0;for(b=0;bb+)if(G.arcsdb.adj,G.vexb.sight);q=q+1;Pab=0;d=b;if(q%8=0) printf(goto gate;void HaMiTonian(int m) /用来求推荐路线if(m9) return;L: NextValue(m);if(xm=0) return;if(m=7&G.arcs0x9-1.adj!=20000)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1