数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法2-1.docx

上传人:太** 文档编号:60479193 上传时间:2022-11-16 格式:DOCX 页数:3 大小:13.96KB
返回 下载 相关 举报
数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法2-1.docx_第1页
第1页 / 共3页
数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法2-1.docx_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法2-1.docx》由会员分享,可在线阅读,更多相关《数据结构习题集(李冬梅 第2版)C语言版源程序习题源代码 习题集-算法2-1.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、ttinclude 件include using namespace std;函数结果状态代码Mefine OK 14define ERROR 0/define OVERFLOW -2 /Status是函数的返回值类型,其值是函数结果状态代码 typedef int Status;结点的数据域结点的指针域/LinkList为指向结构体LNode的指结点的数据域结点的指针域/LinkList为指向结构体LNode的指typedef struct LNode (int data;struct LNode *next;LNode, *LinkList;针类型Status InitList (Link

2、List &L);/初始化Status DestroyList (LinkList &L);销毁链表void CreateList_R (LinkList &Lf int L_Data , int n);/后插法创立单链表void MergeList (LinkList &LA, LinkList iLB, LinkList &LC) ; /合并void PrintList (LinkList L);/输出锥表int main() ( int laData(=3Z5,8,11); int lbData=2/6,8/9,ll,15,20); LinkList la, lb; InitList(l

3、a); InitList(lb);CreateList_R(la,laData,sizeof(laData)/sizeof(laData0); CreateList_R(lb,IbData,sizeof(IbData)/sizeof(IbDaca0);LinkList 1c;InitList(1c);MergeList(la,lb,1c);coutnext=NULL;头结点的指针域置空return OK; 箱毁链表 Status DestroyList(LinkList &L) ( while(L) ( LNode *p=L;释放空间L=L-next; delete p;return OK;

4、后插法创立单链表/尾指针r指向头结点void CreateList_R(LinkList &L,int L_Data,int n) /正位序输入n个/素的值,建立带表头结点M单链表LLNode *r = L;for (int i=0;idata=L_Datai; p-next NULL; r-next-p; r=p;LNode *p=new LNode; p-data=L_Datai; p-next NULL; r-next-p; r=p;生成新结点/初始化p的数据域为L_Data i 将新结点*插入尾结1”之后 /r指向新的尾结点*p输出链表void PrintList(LinkList L

5、) (LNode *pL;coutnext;while(p) (cout p-data; p=p-next;coutendl;/合并void MergeList(LinkList iLa,LinkList &Lb,LinkList &Lc) 将两个递增的有序链表La和Lb合并为一个递增的有序链表LcLNode *pa=La-next;/pa是链表La的工作指针,初始化为首元结点LNode *pb=Lb-next;pb是链表Lb的工作指针,初始化为首元结点/pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的首元结点 Lc=La; LNode *pc=La;/用La的头结点作为Lc的头结

6、点while (paiipb)/两个链表La和Lb均未到达表尾结点( if(pa-datadata) 取较小者La中的元素,将pa链接在pc的后面,pa指针后移 pc-next=pa;pc=pa;pa=pa-next;)else if (pa-datapb-data)(取较小者Lb中的元素,将pb链接在pc的后面,pb指针后移 pc-next=pb;pc=pb;pb=pb-next;)else(相等时取La中的元素,删除Lb中的元素pc-next=pa;pc=pa;pa=pa-next;LNode *q=pb-next;delete pb; pb=q;)将非空表的剌余元素直接链接在Lc表的最后 释放Lb的头结点pc-next=pa?pa:pb;delete Lb;输出结果:合并后的线性表为:None 2 3 5 6 8 9 11 15 20

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁