下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构程序填空复习题说明:本文档中涉及到的算法并非本书的全部,有些可根据此处的情况自行看书和作业题,黑色为综合练习 上的题目,红色为我另增加的题,这些空的选择是根据我个人的经验来决定的并不能完全代表中央电大的出 卷老师,因此一定不能有肯定就考这些题目的想法。不能放弃其他内容的复习,切记!!一、线性表1.设线性表为(6, 10, 16, 4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数 据。#define NULL 0void main()NODE a,b,c,d,*head,*p;a.data=6;b.data=10;c.data=16;d.data=4; /*d 是
2、尾结点 */head= (1);a.next=&b;b.next=&c;c.next=&d;(2); /*以上结束建表过程*/p=head;/*p为工作指针,准备输出链表*/ doprintf( %dn”, (3);(4);while( (5);答案:(1) &a(2) d next=NULL(3) p->data(4) p=p->next p!=NULL2.以下函数在head为头指针的具有头结点的单向链表中删除第i个结点,struct node int data;struct node *next;);typedef struct node NOD
3、E int delete(NODE *head,int i ) NODE *p,*q;int j;q=head;j=0; while(q!=NULL)&&()(2);j+; ) if(q=NULL) return(0);p= (3);(4)=p->next;free(5);return(1);答案:(1) j<i-1(2) q=q->next(3) q->next(4) q->nextpb存放待插入的元素值,3.将新元素插入到线性表中的第i位,MAX是数组的个数,a0用以存放线性表长度,i存放插入白位置,n存放线性表长度int aMAX;int i
4、,j,b,n;scanf( %d%d%d”,&b,&i,&n);for(j=1产n;j+)scanf( %d”,&aj);a0=n;for(j=n; (1);j-)(2)(3)(4)for(j=1;j<=a0;j+)printf( %5dn ",aj);答案:(1) j>=i(2) aj+1=aj(3) ai=b(4) a0=n+14.用头插法建立带头结点且有n个结点的单向链表的算法NODE *create(n)NODE *head,*p,*q;int ip=(NODE *)malloc(sizeof(NODE);C2j;C3;for(i=
5、1;i<=n;i+) p=(NODE *)malloc(sizeof(NODE); p->data=i;if(i=1) 14);else C5; 16); return(head);答案:(1) head=p(2) p->next=NULL(3) q=p(4) p->next=NULL p->next=q->next (6) q->next=p1、 栈1 .以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针struct node ElemType data;struct node *next;;struct node *top ; v
6、oid Push(ElemType x)struct node *p;p=(struct node*)malloc();p->data=x;(2);答案:(1) sizeof (struct node)(2) p->next=top(3) top=p2、 队列1 .以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别是链队列的队头、队尾指针struct node ElemType data;struct node *next;struct node *front , *rear; void InQueue(ElemType x)struct node
7、*p;p= (struct node*)(1);p->data=x;p->next=NULL;(2);rear= (3);)一答案:(1) malloc(sizeof (struct node)(2) rear->next=p(3) p2.以下函数为链队列的出队操作(链队列带有头结点),出队结点的数据域的值由x返回,front、rear分别是链队列的队头、队尾指针struct node ElemType data;struct node *next;struct node *front , *rear; ElemType OutQueue()ElemType x;if( )
8、printf("队列下溢错误!n");exit(1); ) else struct node *p=front->next;x=p->data;front->next=(2);if(p->next=NULL) rear=front;free(p);答案:(1) front= =rear(2) p->next(3) return(x)三、 树1.以下程序是先序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为 和right,数据域data为字符型,BT指向根结点)。void Preorder (struct BTreeNo
9、de *BT) if(BT!=NULL)(1) ;(2) ;(3);)答案:(1) printf("%C ,BT->data)(2) Preorder(BT->left)(3) Preorder(BT->right) 2.以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为 和right,数据域data为字符型,BT指向根结点)。void Inorder (struct BTreeNode *BT) if(BT!=NULL)(1);(2;(3);)答案:(1) Inorder(BT->left)(2) printf(&quo
10、t;%C ,BT->data)(3) Inorder(BT->right) 3以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为 和right,数据域data为字符型,BT指向根结点)。leftleftleftvoid Postorder (struct BTreeNode *BT) if(BT!=NULL)答案:(1) Postorder(BT->left)(2) Postorder(BT->right)(3) printf( %c”,BT->data);四、 图五、 排序1.以下冒泡法程序对存放在a1 , a2,,an中的
11、序列进行排序,完成程序中的空格部分,其中是元素个数,要求按升序排列。void bsort (NODE a , int n) NODE temp;int i,j,flag;for(j=1; (1);j+);flag=0;for(i=1;(2);i+)if(ai.key>ai+1.key)flag=1;temp=ai;(3) ;(4) ;if(flag= =0)break;程序中flag的功能是5_5)答案:(1) j<=n-1(2) i<=n-j(3) ai=ai+1(4) ai+1=temp(5) 当某趟冒泡中没有出现交换则已排好序,结束循环2.以下函数为直接选择排序算法,对
12、 a1,a2,an中的记录进行直接选择排序,完成程序中的空格 typedef struct int key;NODE;void selsort(NODE a,int n)int i,j,k;NODE temp;for(i=1;i<=(1);i+)k=i;for(j=i+1;j<= (2);j+)if(aj.key<ak.key) _(3)if(i!=k)temp=ai;(4);(5);答案:(1) n-1n(3) k=j(4) ai=ak(5) ak=temp3.直接插入排序算法Void disort(NODE a,int n)int I,j;NODE temp;for(i=
13、1;i<n;i+)temp=ai;CU.whileO>=0&&temp.key<aj.key);(3) ;(4) ;答案:(1) j=i-1(2) aj+1=aj(3) j-(4) aj+1=temp4.快速排序void quicksort(NODE a,int start,int end)int iI,j;NODE mid;if(start>=end)return;(1);(2);mid=ai;while( (3)while(i<j)&&aj.key>mid.key)(4) ;if(;)6;rn;while(i<j&a
14、mp;&ai.key<=mid.key)m;if(i<j)C9J;(10) ;ai=mid;(11) ;答案:(1) i=start(2) j=endi<j(4) j-也可能将此条语句写出,要填写其条件中的aj.key>mid.keyi<j(6) ai=aji+(8) i+也可能将此条语句写出,要填写其条件中的ai.key<=mid.key(9) aj=ai(10) j-(11) quicksort(a,start,i-1)(12) quicksort(a,i+1,end)最后两句要填的概率会很高,要注意快速排序的考点很多,一般只会有三到四个空。5.
15、直接选择排序void selsort(NODE a,int n)int i,j,k;NODE temp;for(i=1;i<=n-1;i+)(1);for(j= (2);j<=n;j+)if(aj.key<ak.key)(3)if( (4) (5);(6) ;(7) ;答案:(1) k=i(2) i+1(3) k=j(4) i!=k temp=ai(6) ai=ak(7) ak=temp前四句较为重要6.堆排序中的筛选算法void heapshift(NODE a口,int I,int n)NODE temp;int j;temp=ai;while(j<n)if(j+1
16、<n&&aj.key>aj+1.key);if(temp.key>aj.key)(3) ;(4) ;(5) ;else break; (6);答案:(1) j=2*ij+(3) ai=aj(4) i=j(5) j=2*i(6) ai=temp这是构建的小根堆,若是大根堆,只要将 if语句中的aj.key>aj+1.key改为 <,再将第二个if语句中的 >改为即可(7) 排序void heapsort(NODE a,int n)int iNODE temp;for(i= (1);i>=1;i-);for(i=n;i>1;i-) t
17、emp=a1; ;(4)(5);答案:(1) n/2(2) heapshift(a,i,n)(3) a1=ai(4) ai=temp(5) heapshift(a,1,i-1)8.两个有序序列的归并 void merge(NODE a,int s,int m,int n,NODE order) int i=s,j=m+1,k=s;while( (1)&&()if(ai.key<=aj.key)(3)else(4)if(i>m) while(j<=n)(5)ElseWhile(i<=m)661答案:(1) i<=m可保留此句,将其条件语句去掉可保留此
18、句,将其条件语句去掉可保留此句,将其条件语句去掉可保留此句,将其条件语句去掉(2) j<=n(3) orderk+=ai+(4) orderk+=aj+ Orderk+=aj+(6) orderk+=ai+3) (4)就不会要求填(5) (6),第(3) (4)空与第(5) (6)空有较直接的关联,因此一般情况下若要求填(若(5) (6)位要填也是填其条件句七、查找1 .以下函数在a0到an-1中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格typedef struct int key;NODE;int Binary_Search(NODE a,int n, int k) int low,mid,high;low=0;high=n-1;while( (1)mid=(low+high)/2;if(amid.key=k)returnelse if(3)low=mid+1;else_(4);一(5);答案:(1) low<=high(2) mid(3) amid.ke
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内部员工晋升制度
- 内部培训师薪资制度
- 内部审计考评制度
- 内部彰奖励制度
- 内部收益分成制度
- 内部瓦工班组员工制度
- 内部联络单物流管理制度
- 学内部自我监测制度
- 影视制片人面试全解与实战技巧
- 金融衍生品在保利发展中的应用研究
- 2026年成都市郫都区产业园区面向社会公开招聘员额制人员考试参考试题及答案解析
- 2025年福建新华研学国际旅行社有限责任公司招聘备考题库及答案详解1套
- 2026年内蒙古交通职业技术学院单招职业倾向性测试题库及答案详解(基础+提升)
- 【历史】2025-2026学年统编版八年级历史下册知识点填空
- 2025年医疗影像诊断操作流程指南
- 部编版高中语文背诵补充篇目汇-总(选修)
- 测绘地理信息从业人员保密知识培训课件
- DB32T 4117-2021 保温装饰板外墙外保温系统技术规程
- Dev-C++基础教程习题解答
- 中国大唐集团电子商城平台
- 扬剧《王宝钏》选段《探寒窑》
评论
0/150
提交评论