数据结构试题大题编程及参考答案.pdf

数据结构试题大题编程及参考答案.pdf

ID:59669325

大小:45.52 KB

页数:6页

时间:2020-11-13

数据结构试题大题编程及参考答案.pdf_第1页
数据结构试题大题编程及参考答案.pdf_第2页
数据结构试题大题编程及参考答案.pdf_第3页
数据结构试题大题编程及参考答案.pdf_第4页
数据结构试题大题编程及参考答案.pdf_第5页
资源描述:

《数据结构试题大题编程及参考答案.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构考试题参考答案1、设顺序表L中的数据元素递增有序。试写一算法,将数据元素x插入到顺序表L的适当位置,以保持该表的有序性。解:存储结构为:typedefstructSeqList{DataType*data;intMaxLen;intlen;}SeqList;算法如下:voidinsertLx(SeqList&L,DataTypex){if(L.len==L.maxlen)return;inti=L.len-1;while(i>=0&&x

2、1;}L.data[i+1]=x;L.len++;}2、试写一个算法,在带头结点的单链表L的元素x前插入一个结点y。解:存储结构如下:typedefstructLnode{ElemTypedata;structLnode*next;}Lnode,*LinkList;算法如下:voidinsert_y_before_x(LinkListL,ElemTypex,ElemTypey){Lnode*q,*p=L;while(p->next&&p->next->data!=x)p=p->next;//找x的前驱结点p;if(!p

3、->next)return;//若不存在结点x,则返回;q=newLnode;q->data=y;q->next=p->next;p->next=q;}3、试写一个算法,统计带头指针的单链表L的元素个数。解:存储结构如下:typedefstructLnode{ElemTypedata;structLnode*next;}Lnode,*LinkList;算法如下:intlength(LinkListL){intlen=0;Lnode*p=L;while(p){len++;p=p->next;}returnlen;}注:如

4、果单链表是带头结点的,则算法如下:intlength(LinkListL){intlen=0;Lnode*p=L->next;;while(p){len++;p=p->next;}returnlen;}4、试写一个算法,在带头结点的单链表L的第k个结点后插入一个结点x。解:存储结构如下:typedefstructLnode{ElemTypedata;structLnode*next;}Lnode,*LinkList;算法如下:voidinsert_after_k(LinkListL,intk,ElemTypex){if

5、(k<0)return;Lnode*q,*p=L;inti=0;while(p&&inext;}//找到第k个结点p;if(!p)return;//若不存在第k个结点,则返回;q=newLnode;q->data=x;q->next=p->next;p->next=q;}注:如果是在L的第k个结点前插入一个结点,则找第k-1个结点p,然后插入。5、试写一个算法,在带头结点的单链表L中删除所有的数据元素为x的结点。解:存储结构如下:typedefstructLnode{ElemTypedata;

6、structLnode*next;}Lnode,*LinkList;算法如下:voidDelete_all_x(LinkListL,Elemtypex){Lnode*p,*q;p=L;while(p){if(p->next&&p->next->data==x){q=p->next;p->next=q->next;deleteq;}elsep=p->next;}}注意:要删除所有的值为x的结点。6、假设一个单循环链表L的数据域为整型,设计一个算法,求该表中所有结点的数据之和。解:存储结构如下:typedefstructL

7、node{ElemTypedata;structLnode*next;}Lnode,*LinkList;假设L带头结点,且L指向头结点,则算法如下:intsum_Of_Data(LinkListL){ints=0;Lnode*p=L->next;while(p!=L){s+=p->data;p=p->next;}returns;}假设L不带头结点,且L指向循环链表中任何一个结点,则算法如下:intsum_of_data(LinkListL){ints=0;Lnode*p=L;if(L){s+=p->data;p=p->

8、next;while(p!=L){s+=p->data;p=p->next;}}returns;}注:以上两种情形,只要给出其中一种情形的解即可。7、假设二叉树用二叉链表存储,设计一个算法,求二叉树的结点个数。解:存储结构如下:typedefstructbitnode{ElemTypedata;structbitnode*lchi

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

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

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