2010青海省数据库入门入门.docx

2010青海省数据库入门入门.docx

ID:59513128

大小:15.23 KB

页数:6页

时间:2020-11-04

2010青海省数据库入门入门.docx_第1页
2010青海省数据库入门入门.docx_第2页
2010青海省数据库入门入门.docx_第3页
2010青海省数据库入门入门.docx_第4页
2010青海省数据库入门入门.docx_第5页
资源描述:

《2010青海省数据库入门入门.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、编程实现单链表的就地逆置。23.在数组A[1..n]中有n个数据,试建立一个带有头结点的循环链表,头指针为h,要求链中数据从小到大排列,重复的数据在链中只保存一个.2、二路插入排序是将待排关键字序列r[1..n]中关键字分二路分别按序插入到辅助向量d[1..n]前半部和后半部(注:向量d可视为循环表),其原则为,先将r[l]赋给d[1],再从r[2]记录开始分二路插入。编写实现二路插入排序算法。3、有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针

2、域next。假设单链表已建立,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留一个。#includetypedefchardatatype;typedefstructnode{datatypedata;structnode*next;}listnode;typedeflistnode*linklist;/*--------------------------------------------*//*删除单链表中重复的结点*//*-------------

3、-------------------------------*/linklistdeletelist(linklisthead){listnode*p,*s,*q;p=head->next;while(p){s=p;q=p->next;while(q)if(q->data==p->data){s->next=q->next;free(q);q=s->next;}else{s=q;/*找与P结点值相同的结点*/q=q->next;}p=p->next;}returnhead;}4、编写一个过程,

4、对一个n×n矩阵,通过行变换,使其每行元素的平均值按递增顺序排列。5、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。现要求采用循环链表结构设计一个算法,模拟此过程。#includetypedefintdatatype;typedefstructnode{datatypedata;

5、structnode*next;}listnode;typedeflistnode*linklist;voidjose(linklisthead,ints,intm){linklistk1,pre,p;intcount=1;pre=NULL;k1=head;/*k1为报数的起点*/while(count!=s)/*找初始报数起点*/{pre=k1;k1=k1->next;count++;}while(k1->next!=k1)/*当循环链表中的结点个数大于1时*/{p=k1;/*从k1开始报数*

6、/count=1;while(count!=m)/*连续数m个结点*/{pre=p;p=p->next;count++;}pre->next=p->next;/*输出该结点,并删除该结点*/printf("%4d",p->data);free(p);k1=pre->next;/*新的报数起点*/}printf("%4d",k1->data);/*输出最后一个结点*/free(k1);}main(){linklisthead,p,r;intn,s,m,i;printf("n=");scanf("%

7、d",&n);printf("s=");scanf("%d",&s);printf("m=",&m);scanf("%d",&m);if(n<1)printf("n<0");else{/*建表*/head=(linklist)malloc(sizeof(listnode));/*建第一个结点*/head->data=n;r=head;for(i=n-1;i>0;i--)/*建立剩余n-1个结点*/{p=(linklist)malloc(sizeof(listnode));p->data=i;p-

8、>next=head;head=p;}r->next=head;/*生成循环链表*/jose(head,s,m);/*调用函数*/}}6、数组A和B的元素分别有序,欲将两数组合并到C数组,使C仍有序,应将A和B拷贝到C,只要注意A和B数组指针的使用,以及正确处理一数组读完数据后将另一数组余下元素复制到C中即可。voidunion(intA[],B[],C[],m,n)//整型数组A和B各有m和n个元素,前者递增有序,后者递减有序,本算法将A和B归并为递增有序的数组C。{i=0;j=n-1;k=0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。