数据结构算法题复习_第1页
数据结构算法题复习_第2页
数据结构算法题复习_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构算法题复习(线性表和二叉树)1 .设计在单链表中删除值相同的多余结点的算法。typtdefmtdatatype;typ£duf写trucinodedatzB-pedata;structno丧*next;Iklist;voiddelredundantflklisidthead)1IIklist*p*q.*s;fonj)=head;pf=Q;p=p->nexr)(for(q-p->nexts-q:q!-0;)if(q'>data=p->data)s->netq->next:free(q):q=s->nextieke$=qrq=q-

2、>ne5rt!)2 .设计在链式存储结构上交换二叉树中所有结点左右子树的算法。h-pdefstructno-dmtdita:structnodekhdd/rttuld;bitree:voidswapbiiree<t)iire*tn)(bitiee*p:ifbt=O)return;siizpbin己式bt->1cinld);&-apbitree(bt-mrchild;p-bt->lciiild;bt->lcluld-bt*>fchild;ibi->rchiJd-p:3 .设计一个在链式存储结构上统计二叉树中结点个数的算法。voideountfio

3、d(13Ltree:hbtint&count|count-n-;eouritnode(bt->lchiIdQUTit),co-unlnotle(bt->rcIiild,count);4 .设计判断单链表中元素是否是递增的算法。mtMhad)(if?head=0|head->next=0)return(1):elsefbr(q=hei'd:p=head->ne?tt:p!=0;q-prp-p->next)iffq->data>p->data)renimfO);feturtL(1X5 .统计出单链表HL中结点的值等于给定值X的结点数。

4、intCountX(LNode*HL:ElemTypex)(tnti=0:LXode,p=HL”为在钻器whik(p?-NULL)if(P->data=x)if;p=p->next:>出循环时i中的值即为x结点个数returni;/CountX6 .设有两个集合A和集合B,要求设计生成集合C=AAB的算法,其中集合A、B和C用链式存储结构表示。hpedefstructn口也mtdata,structrio-de'next;Lk_LiBtivoidimersccuotiflklin*ha;llclis:*hbjklisi*&hc)(Iklistfbr(pM,hc

5、=(XpI=0;p=p->nextjfbr(q-hb;q!=0;q=q->next)iftq>data=p->data)br<ak;i或q!=0t=(lklist*)mal1oc(sioflkist)t->data=p->data:t->next=hc:hc=t;)7 .设计一个求结点x在二叉树中的双亲结点算法。r-pedfstructiLOdedatiK-pe-data:structn-&de*lhiLd.rchild:tiuee*q2C;intr-0rf*0:flaff»0;voidprerdeitbitT既*b【charx

6、)if(bt!=0&&.flag=0)if<tot->daTa=x)ilaE=l:rewn;else红=(工7)9口20;qr-bt,prearder(bt->khild.x.prcordei(bt->rctnld.Jivoidp3rtnt(t)iiree*trt,charx)inti;prwidbt,1);for(i=f-l=i<=r:ih)if(qi->lchild->daia=xqi->rchild-xiata)bieak;if(flag=O)printfl"Qotibundxn");ele:f:工=t:

7、pr:ntf;'='Q?".bata:elepninfinotpar川1:8设计计算二叉树中所有结点值之和的算法。皆odstimfbitree"Hifit&学(ifbt!=O)s=s-b-t-data.suniibt-khdld.sj;sum(bt-!>rcLild_s).)9.给出算法分别求出二叉树的叶结点、度数为1的结点、度数为2的结点的个数。结点计数可以在遍历中解决,中魏',访问根结点/口递归调用左子树/“递归调用右子树”三者位置的不同,而有先序、中序和后序遍历。M时n2.nl.nO;设量三个全局变量,分别记度为33和叶结点的个数

8、,voidcountjBiTreet)+J也呼出讦任川childSiat->rchild)口2+产elseit->lchild&-!t->rchild|!t->lchildAS:t->rchild)nl+产elseH)+?ui*(t->lchild!=null)count(t->Ichildif|t->rchild!=null)count(t->rchiId);*J卜10 .已知一个顺序表中的各结点值是从小到大有序的,设计一个算法,插入一个值为x的结点,使顺序表中的结点仍然是从小到大有序(不考虑空间不够用的情况)。tvcedefstructpelemtvpe"intlengthyISqLiEt:感insert(瓢思&L蜩悬嬲冰p=Lelem+Llen£thi+'*11 .设计一个算法,判断一个单链表中的各个结点值是否递增有序(带头结点的单链表)。typedefstructLnode+elemtypedata:+JstrurtLnode*nBm,ILnode?LinkUst;intjudgedLimkL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论