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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

面试数据结构.docx

1、面试数据结构面试数据结构二 排序及查找方法#include #include#define N 11/*用监视哨查找*/int search(int array,int n,int k)int i;i=n-1;array0=k;while(arrayi!=k) i-;return(i);/*折半查找法*/int halfsearch(int array,int n,int k)int i,j,mid;i=1;j=n;while(i=j)mid=(i+j)/2;if(k=arraymid) return(mid);else if(karraymid) j=mid-1; else i=mid+1;

2、return(0);/*冒泡排序法*/void mpsort(int array)int i,j,a;a=0;for(i=1;iN;i+) for(j=i+1;jarrayj) a=arrayi; arrayi=arrayj; arrayj=a;/*直接插入排序*/void insertsort(int array)int i,j;for(i=2;iN;i+)array0=arrayi;j=i-1;while(array0arrayj)arrayj+1=arrayj-;arrayj+1=array0;/*建立*/void creat(int array)int i;printf(enter t

3、he array:n);for(i=1;iN;i+)scanf(%d,&arrayi);/*显示*/void print(int array) int i; printf(The numbers after sort is:n); for(i=1;iN;i+) printf(%d ,arrayi); printf(n); main()int a11,i,x,chang;/*printf(enter the arrayn);for(i=1;inext=NULL;return 1;else return 0;2插入操作Status ListInsert_L(LinkList &L,int i,El

4、emType e)p=L,j=0;while(p&jnext;+j;if(!p|ji-1) return ERROR;s=(LinkList)malloc(sizeof(LNode);s-data=e;s-next=p-next;p-next=s;return OK;/ListInsert_L3删除操作Status ListDelete_L(LinkList &L,int i,ElemType &e)p=L,j=0;while(p&jnext;+j;if(!p-next|ji-1) return ERROR;q=p-next;p-next=q-next;e=q-data;free(q);ret

5、urn OK;/ListDelete_L4取某序号元素的操作Status GetElem_L(LinkList &L,int i,ElemType &e)p=L-next,j=1;while(p&jnext;+j;if(!p|ji) return ERROR;e=p-data;return OK;/GetElem_L5归并两个单链表的算法void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc)/已知单链线性表La和Lb的元素按值非递减排列/归并后得到新的单链线性表Lc,元素也按值非递减排列pa=La-next;pb=Lb-next;Lc=

6、pc=La;while(pa&pb)if(pa-datadata)pc-next=pa;pc=pa;pa=pa-next;elsepc-next=pb;pc=pb;pb=pb-next;pc-next=pa?pa:pb;free(Lb);/MergeList_L头指针与头结点的区别:头指针只相当于结点的指针域,头结点即整个线性链表的第一个结点,它的数据域可以放数据元素,也可以放线性表的长度等附加信息,也可以不存储任何信息。典型的约瑟夫环问题。原问题比你的问题要复杂一点。我以前写的程序:1.用数组。# include stdio.h# define SIZE 100main() int m,n,

7、i; int arraySIZE; printf(约瑟夫环求解,当前设置最大人数为%d.n,SIZE); printf(报数上限:n); scanf(%d,&m); printf(总人数为:n); scanf(%d,&n); for(i=0;in;i+) printf(第%d人的密码为:,i+1); scanf(%d,&array); joseph(array,m,n);int joseph(a,m,n)int a,m,n; int bSIZE; /*计录编号数组.*/ int i; /*计数器.*/ int flag=0; int code; /*删取人的号码.*/ int sum=n; /

8、*现存人数.*/ int point=0; /*当前报数人的位置.*/ int num=m; for(i=0;in;i+) /*计录数组.*/ b=i+1; while(sum!=0) /*当人数不为零时继续循环.*/ for(i=1;i=sum) /*当前报数位置超过最后一人时从第一人报起.*/ point=1; else point+; num=apoint-1; /*取密码.*/ code=bpoint-1; /*取号码.*/ for(i=point;i=sum;i+) /*删去退出的人.*/ ai-1=a; bi-1=b; sum-; /*现存总人数.*/ flag+; /*退出的人数

9、.*/ point-; printf(已退出%d人,退出的人的编号为%d.n,flag,code); 2.用循环链表# include stdio.h# include alloc.h# define LEN sizeof(struct player) struct player int num; /*编号*/ int secret; /*密码*/ struct player *next; ; int n; /*总人数*/main() int m; void create(); void delete(); struct player *head; head=(struct player *)malloc(LEN); printf(请输入第一次的密码:n); scanf(%d,&m); create(he

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

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