:掌握线性表的链式存储结构设计与基本操作的实现。实验内容:1、采用书上第28页定义的线性表链式存储结构,、、、,以及输出线性链表的算法。另外,编写主函数对所实现的算法进行测试。2、采用线性表的链式存储结构,实现线性链表的合并操作:①设有线性链表La和Lb,试设计算法将La和Lb归并为新的线性链表Lc;②设线性链表La和Lb中的数据元素为整数,且均已按值非递减有序排列,要求Lc中的数据元素也按值非递减有序排列。程序清单:1.#include<>#include<>#defineERROR0#defineNULL0#defineOK1typedefintElemType;typedefstructLNode{ ElemTypedata; structLNode*next;}LNode,*LinkList;intGetElem_L(LinkListL,inti,ElemType&e){ intj=1; LinkListp=L->next; while(p&&j<i){ p=p->next; ++j; } if(!p||j>i) returnERROR; e=p->data; returnOK;}intListInsert_L(LinkList&L,inti,ElemTypee){ intj=0; LinkListp=L,s; while(p&&j<i-1) {p=p->next; ++j;} if(!p||j>i-1) returnERROR; s=(LinkList)malloc(sizeof(LNode)); s->data=e; s->next=p->next; p->next=s; returnOK;}intListDelete_L(LinkList&L,inti,ElemType&e){ intj=0; LinkListp=L,q; while(p->next&&j<i-1) {p=p->next; ++j;} if(!(p->next)&&j>i-1) returnERROR; q=p->next; p->next=q->next; e=q->data; free(q); returnOK;}voidCreateList_L(LinkList&L,intn){ inti; LinkListp,q; L=(LinkList)malloc(sizeof(LNode)); q=L; for(i=1;i<=n;i++) { p=(LinkList)malloc(sizeof(LNode)); scanf("%d",&p->data); q->next=p; q=p; } q->next=NULL;}intOutputList_L(LinkListL){ LinkListp=L->next; if(p==NULL) returnERROR; while(p!=NULL) {printf("%d",p->data); p=p->next;
数据结构实验报告-线性链表 来自淘豆网m.daumloan.com转载请标明出处.