下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构算法题复习(线性表和二叉树)1. 设计在单链表中删除值相同的多余结点的算法。typtdef mt datat;-pe;t._p def struci node datzB'pe data; struct nod * next; lk list;void delredundantflklisi Ahead)1Ilklist *p/qz*s;forij)=head;pf=Q ;p=p->nexr) for(q-p->nexts-q:q!-O;) if (q'>data=p->data) s '>netq->next: free(q
2、): q=s- >nexti eke $=qrq=q->ne5rt!2. 设计在链式存储结构上交换二叉树中所有结点左右子树的算法。tj-pdef struct no-d mt dita: struct node khdd/rttuld; bitree: void swapbiiree<t)iire *bt)bitiee *p:ifbt=O) return;s'wapbineei. bt-> lc inld); g輕卫pbiTr ee(b t->rchild)-; p-bt->lciiild; bt->lcluld-bv>fchild; l
3、)i->rchiJd-p:3. 设计一个在链式存储结构上统计二叉树中结点个数的算法。void countfiodhLtree :hbtinti count-n-; eouritn ode(b t->lchi ldount), c o-u nlnotle (bt->rc Iiild, count);4. 设计判断单链表中元素是否是递增的算法。mtMhad)(if?head=O| head->next=O) return(1):elsefbr(q=hea-d:p=head->ne?tt: p!=0; q-prp-p->next)iffq->data>
4、p->data) renimfO); rtiirjif 1;mt CountX(LNode* HL:ElemType £ tnt i=0: LXode* p=HL;Vi 为i+数器 whik(p?-NULL)if (P-xlata=x) i-+; p=p->next: avLIs,出循环时i中的值即为x结点个数 return i; .'CountX6.设有两个集合 A和集合B,要求设计生成集合C=A A B的算法,其中集合 A、B和C用链式存储结构表示。hpedef struct node mt data, struct no-de ' next;lkii
5、Bt:void iniersecuoti(lklin *ha;llclis: *htJklisT *&hc)lklistfbq 尸 ha, hc=O ;p'=0 ;p=p-> next) fbr(q*hb;q!=0:q=q->next) if tQ->data=p->data) break;if(q(=O) t=(lkli5t *)oialloc(sizeoflklL5t); t->data=p->data:t->next=hc: hc=tJ 7设计一个求结点x在二叉树中的双亲结点算法。B-pedf struct node dtiK-p
6、e- datn: struct n-odechild:Ntree *q2C; intr-0rf0:flaff»0;void pMfdcr(bitK亡 *bt char sif(bt!=0 &&. flag=O)if i bt->daTa=> ilag=l: remm;else 封=9+1)% 20. qr=bt. prearder(bt->khild.K). preordei(bt->rchild.x. void p3r<nt(t?iiree *bt1char xinti;prwrdertbt,!);for(i=f-l: i<=r:
7、 i卄)if rqi->lctnld->daia=x qi->r匚hiltl-xiatd i bieak;if (flas=O) prin'Qot ibund x iT);el$e if i<F) printfl(-r%celse pninfnot parent");8设计计算二叉树中所有结点值之和的算法。v<5id stimfbitree btifit gifibt!=O) s=s-b1-data. suniibt-khild.sj; sum(bt-!>rcLild.s).9.给出算法分别求出二叉树的叶结点、度数为1的结点、度数为 2的结
8、点的个数。结点计数可以在遍历甲解块样扌陇E谊问根结点化'递归调用左子树叫“遥归调用右子树” 三者位蛊的不同,而有先序、中序和后序遍历。4mft n2, nl, nO;设番三个局变量分别记度为2,1和叶结点的个数*void countj BiTree t)x-rf(t->lc:hfldchild) n2+;*Jelse it->lchild '蠡& !t->rchild | | !t->lchild A£tt->rchildj nl-n+j+Jelse r>0+;*'rf(?->lchi Id 1-null) c
9、ou ntftlchildJj+J眦 t->rch ild!=null)count (t *> rchfi Id 評F10. 已知一个顺序表中的各结点值是从小到大有序的,设计一个算法,插入一个值为x的结点,使顺序表中的结点仍然是从小到大有序(不考虑空间不够用的情况)。tvped&f structpVXMWWWVelemtvpe *刨己閃片應length評ISqLiEt:喇i MErt (純褰&L輙煎赠)屮p=Lelem+Llen£th!+'欢学r-PD rp+lhp屮伽吋A11. 设计一个算法,判断一个单链表中的各个结点值是否递增有序(带头结点的单链表)。typed ef struct Ln ode+elemtype data:+Jstrurt Lnode FeM;*1辿回已 LinkList;intiudgeiLinkList L胳vvt W MWVWUW r 0p=L->next;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版消防工程设计咨询合同范本3篇
- 2024旅游代理免责协议书范本保障旅游代理权益3篇
- 2024年离婚协议样本:女方债务解决3篇
- 2024年适用劳务公司劳动协作协议模板一
- 2024汽车抵押贷款保证合同范本新9篇
- 2025年度设备砂石料采购与市场调控合作协议3篇
- 2024版不固定还款期限借款协议版
- 2024年设备场地租赁及质量控制协议2篇
- 2024民房买卖及装修配套合同专项协议3篇
- 2024年股权捐赠协议:无偿转股的新模式
- 2024年社区工作者考试必考1000题【历年真题】
- 医院特殊管理药品突发事件应急预案例文(五篇)
- 全国计算机等级考试一级试题及答案(5套)
- DB4108T 8-2023 竖型废弃矿井封井回填技术规程
- 医生四页简历10模版
- 2024年人教版八年级历史上册期中考试卷(附答案)
- 2024年锅炉运行值班员(中级)技能鉴定理论考试题库(含答案)
- 福建省泉州市2023-2024学年高一上学期期末质检英语试题(解析版)
- 苏教版(2024新版)七年级上册生物期末模拟试卷 3套(含答案)
- 《项目管理》完整课件
- 2024-2030年中国苯胺行业现状动态与需求前景展望报告
评论
0/150
提交评论