1、(6) 输出单链表H中的第3个元素;(9) 输出单链表H;(10) 删除H中的第3个元素;(11) 输出单链表H;(12) 释放单链表H。三、实验要求:1 C完成算法设计和程序设计并上机调试通过。2 撰写实验报告,提供实验结果和数据。3 写出算法设计小结和心得。三、 程序源代码:实验一#include malloc.h#define MaxSize 50 typedef char ElemType;typedef struct ElemType dataMaxSize; int length; SqList;/初始化void InitList(SqList *&L) L=(SqList *)m
2、alloc(sizeof(SqList); L-length=0; /销毁void DestroyList(SqList *L) free(L);/判断是否为空int ListEmpty(SqList *L) return(L-length=0);/判断长度int ListLength(SqList *L) length); /显示输出void DispList(SqList *L) int i; if (ListEmpty(L) return; for (i=0;ilength;i+) printf(%c,L-datai); printf(n);int GetElem(SqList *L,i
3、nt i,ElemType &e) if (ilength) return 0; e=L-datai-1; return 1;int LocateElem(SqList *L, ElemType e) int i=0; while (i=L- else return i+1;/尾插法int ListInsert(SqList *&L,int i,ElemType e) int j;length+1) i-; /将顺序表位序转化为elem下标*/ for (j=L-ji;j-) /将datai及后面元素后移一个位置*/ L-dataj=L-dataj-1;datai=e;length+; /顺序
4、表长度增1*/ int ListDelete(SqList *&L,int i,ElemType &datai; for (j=i;jnext; while (q!=NULL) free(p); p=q; q=p- free(p);int ListEmpty(LinkList *L) next=NULL);int ListLength(LinkList *L) LinkList *p=L;int i=0; while (p-next! i+; p=p- return(i);void DispList(LinkList *L) LinkList *p=L- while (p!,p-data);i
5、nt GetElem(LinkList *L,int i,ElemType & int j=0; while (jdata; return 1;int LocateElem(LinkList *L,ElemType e) int n=1;=NULL & p-data!=e) n+; return(0); return(n);int ListInsert(LinkList *& LinkList *p=L,*s;i-1 & if (p=NULL) /未找到第i-1个结点 else /找到第i-1个结点*p s=(LinkList *)malloc(sizeof(LinkList); /创建新结点
6、*s s-data=e; next=p- /将*s插入到*p之后 p-next=s;int ListDelete(LinkList *& LinkList *p=L,*q; if (p=NULL) /未找到第i-1个结点 else /找到第i-1个结点*p /q指向要删除的结点 if (q=NULL) return 0; e=q-next=q- /从单链表中删除*q结点 free(q); /释放*q结点 LinkList *H; char D; InitList(H); ListInsert(H,1, ListInsert(H,2, ListInsert(H,3, ListInsert(H,4
7、, ListInsert(H,5, /输出H输出H:DispList(H);判断是否为空: if(ListEmpty(H)当前为空n printf(当前不为空n /判断A的位置判断A的位置: int b=LocateElem(H,%d,b); /寻找地三个元素/ GetElem(H,3,D);/ printf(第三个元素为%s,D); /第四位置插入fn第四位置插入fn输出H: /删除第三个已经删除第三个 ListDelete(H,3,D);当前链表输出H: /销毁链表已经销毁脸链表Hn DestroyList(H);四、 测试结果(程序运行结果采用截图的方式打印):实验一结果实验二结果五、 小结(包括收获、心得体会、存在的问题及解决问题的方法、建议等)注:内容一律使用宋体五号字,单倍行间距通过这次实验我掌握了用C浯言对数据结构的一些问题程序的初步编程,更加牢固掌握了数据结构的部分知识,但发现了许多问题与不足。C语言的部分知识基本快忘完了,一些基本操作也忘了一部分,造成实验的难以继续。其次数据结构掌握的不牢不全面,我应该在今后的日子多温习温习C语言,多看看数据结构课本,多做实验,更加好的学习数据结构。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2