算法设计练习题

算法设计练习题

ID:42642802

大小:86.06 KB

页数:7页

时间:2019-09-19

算法设计练习题_第1页
算法设计练习题_第2页
算法设计练习题_第3页
算法设计练习题_第4页
算法设计练习题_第5页
资源描述:

《算法设计练习题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、算法设计练习题1、设一棵二叉树以二叉链表为存储结构,结点结构为lchild

2、data[rchild。设■一个算法,求在前根序列中处于笫k个位置的结点。1•Bitreptrsearch(bitreptrt,intk){if(t!=null){count++;if(count==k)rcturn(t);else{search(t->lchild5k);search(t->rchild,k);2、设某单链表L的结点结构为

3、咕

4、nexj,编写算法判断该链表的元索是否是递增的。3、设有一单链表L,结点结构为辰喇ncxt

5、,结点个数至少3个,试画出

6、链表L的结构图,并编写算法判断该单链表L中的元素是否成等差关系,即:设各元索值次为a,,a2,a3/-,an,判断爲+

7、-爲=叶生_1是否成立,其中i满足2<=i<=n-l.3.Intisviser(lklistL){P=L;while(p->next!=null)if(p->datanext->data)p=p->next;elsercturn(O);return(l);单链表的结构图如下图所示。a2an算法:intisrise(lklistL){p=L->next;b=p->data-L->data;while(p->nex

8、t!=NULL){q=p->next;if(q->data-p->data!=b)return(O)elsep=q;}rctum(l);4、设有一棵二义树以二义链表作为存储结构,结点结构为

9、lchildld&lrchild

10、,其中data域中存放一个字符,设计一个算法按前根遍历顺序仅打印出data域为数字的字符(即<=data<=9)4.VoidNchar(bitreptrt){讦(t!=Null){if(t->data>='O')&&(t->data<=49?)printf("%d",t->data);Nchar(t->lchild)

11、;Nchar(t->rchild);6、给出求二义树的结点数的算法。二叉树的二叉链衣存储表示:typedefstructBiTNode{DataTypcdata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;6.intnodcs(BiTrcct){intnl,nr;if(t==NULL)return0;if(t->lchild==NULL&&t->rchild=NULL)return1;nl=nodes(t->lchild);nr=nodes(t->rchild);rcturn(nl+nr+

12、l);7.写出一个删除单链表的表头结点和表尾结点的算法。单链表的结点类型及单链表类型定义:typedefstructnode{DataTypedata;structnode*next;}Node,*LinkList;7.intdelht(Node*head){Node*q;if(*head==NULL)return0{q=head->next;free(*head);*hcad=q;}if(q!=NULL){if(q->next==NULL)(free(q);*head=NULL}}else{while(q->next->next!=N

13、ULL)q=q->next;free(q->next);q->next=NULL;}}return0;}8、己知一带头结点的单链表,由头指针H指向,具结点的类型如2typedefstructnode{elemtypedata;structnode*next;}NODE,*NODEPTR;现要在链表屮删除具关键字为aidkey的结点,其程序如下:intdeletelm(NODEPTRH,keytypeaidkey)/*若删除成功,则返回1,否则返回0*/{NODEPTRprc,p;pre=H;p=H->next;while(p&&p->d

14、ata.key!=aidkey){pre二p;①:8.①p二p->next;②pre->ncxt=p->next;}if(p){②;free(p);return1;}elsereturn0;}9、10、编写一个函数:将两个递增有序的单链表A和B归并生成一个递减有序的单链表C,要求利用原表(即A表和B表)的结点空间存放表Co假设线性表的单链表存储结构如门typedefstructLNode{intdata;structLNodc*ncxt;JLNode,*LinkList;10、解:分析:设A,B,C均为不带头结点的单链表(1)当冇序表A

15、,B均非空时,找出两表中元索最小的一个元索,然后将此结点插入到C表中,重复上述步骤。(2)当A,B两表有一个为空表时,将另一表中元素顺序地插入到C表中。(3)由于C按递减排序,因此在C表中插入元素时,应始终

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

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

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