1、2 链表结构定义,算法实现放入库文件“linkList.h”;运算和变量命名直观易懂,并有相应的注释1.2实验内容求链表中第i个结点的指针(函数),若不存在,则返回NULL。2在第i个结点前插入值为x的结点。3删除链表中第i个元素结点。4在一个递增有序的链表L中插入一个值为x的元素,并保持其递增有序特性。5将单链表中的奇数项和偶数项结点分解开(元素值为奇数、偶数),申请2个头结点,把分开的奇数项和偶数项分别链接到这2个头结点上,然后再将 这两个新链表同时输出在屏幕上,并保留原链表的显示结果,以便对照求解 结果。6求两个递增有序链表L1和L2中的公共元素,并以同样方式连接成链表L3。2.实验目的
2、 2.1 理解线性表的链式存储结构。 2.2熟练掌握单链表结构及有关算法的设计。 2.3根据具体问题的需要,设计出合理的表示数据的链表结构,并设计相关算法。3.数据结构设计实验代码node *L,*p; int i; createNode(*&L); /尾插法创建一个链表, coutnext; while(p) coutdata 请输入待求元素序号: cini; locateNode (L, i, &p ); if(p!=NULL)序号i的元素值为: elseNULL destroyList(L); /销毁链表,释放heap内存 _CrtDumpMemoryLeaks(); /debug 模式
3、下检测是否内存泄漏测试截图 node *L,*p; elementType x; createNode(L);插入前链表包含:插入前表长度len=listLength(L) /调用长度函数请输入待插入的元素(x):x;请输入插入位置(i): /调用插入函数,并检查是否插入成功 if(insertNode (L,i,x) cout元素 x 成功插入表第 i while(k)k- k=k-奇数表: m=B- while(m)m- m=m- node *L,*A,*B,*p,*q,*r; createNode(A); createNode(B); int t;A表元素: p=A-B表元素: q=B- while(q)q- q=q- t=getPENode (A,B,L); switch(t) case 0:无公共元素 break; case 1: cout while(r)r- r=r-4总结和心得通过对链表上机实验的操作更加了解了可以用链来实现使用计算机零碎内存,并且知道了对使用过的内存使用destoryList来销毁内存的重要性;整合各函数时遇到了线性表一样的问题,解决方法亦类似;尾插法创建链表时,使用了直接用元素个数控制的方法,直接用p=p-next避免了连接链表指针的繁琐过程。