资源描述:
《数据结构实验二》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二线性表的建立及基本操作方法实现【实验项目】:完成线性表的基本运算,从而了解线性表的基本特征,基本运算算法一、【实验目的】:1.理解和掌握线性表的类型定义方法。2.掌握顺序表中的基本运算,包括顺序表的创建、元素的添加、删除,判空及判满等基本操作。3.掌握链表中的基本运算,包括结点的定义,链表的创建等基本操作。4.掌握利用尾插法建立单链表和显示单链表元素的算法。5.掌握单链表的查找(按序号)算法。6.掌握单链表的插入、删除算法。二、【实验内容】:(一)编写一个程序ALGO2-1.CPP,实现顺序表的各种基本运算,并在此
2、基础上设计一个主程序完成如下功能:(1)初始化顺序表L;(2)依次采用尾插法插入a,b,c,d,e(3)输出顺序表L;(4)输出顺序表L长度;(5)判断顺序表L是否为空;(6)判断顺序表L的第3个元素;(7)输出元素‘a’的位置;(8)在第4个元素位置上插入‘f’元素;(9)输出顺序表L;(10)删除L的第3个元素;(11)输出顺序表L;(12)释放顺序表L;(二)编写一个程序ALGO2-2.CPP,实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:(1)初始化单链表H;(2)依次采用尾插法插入a,b,c
3、,d,e元素;(3)输出单链表h;(4)输出单链表h的长度;(5)判断单链表h是否为空;(6)输出单链表h的第三个元素;(7)输出元素‘a’的位置;(8)在第4个元素位置上插入‘f’元素;(9)输出单链表h;(10)删除L的第3个元素;(11)输出单链表h;(12)释放单链表h;(一)程序:#include#include#defineMaxSize50typedefcharElemType;typedefstruct{ElemTypeelem[MaxSize];intlength;
4、}SqList;externvoidInitList(SqList*&L);externvoidDestroyList(SqList*L);externintListEmpty(SqList*L);externintListLength(SqList*L);externvoidDispList(SqList*L);externintGetElem(SqList*L,inti,ElemType&e);externintLocateElem(SqList*L,ElemTypee);externintListInsert(Sq
5、List*&L,inti,ElemTypee);externintListDelete(SqList*&L,inti,ElemType&e);voidmain(){SqList*L;ElemTypee;printf("(1)初始化顺序表L");InitList(L);printf("(2)依次采用尾插法插入a,b,c,d,e元素");ListInsert(L,1,'a');ListInsert(L,2,'b');ListInsert(L,3,'c');ListInsert(L,4,'d');ListInsert(
6、L,5,'e');printf("(3)输出顺序表L:");DispList(L);printf("(4)顺序表L长度=%d",ListLength(L));printf("(5)顺序表L为%s",(ListEmpty(L)?"空":"非空"));GetElem(L,3,e);printf("(6)顺序表L的第3个元素=%c",e);printf("(7)元素a的位置=%d",LocateElem(L,'a'));printf("(8)在第4个元素位置上插入f元素");ListInsert(L,4,'
7、f');printf("(9)输出顺序表L:");DispList(L);printf("(10)删除L的第3个元素");ListDelete(L,3,e);printf("(11)输出顺序表L:");DispList(L);printf("(12)释放顺序表L");DestroyList(L);(二)程序#include#include//#definemaxsize1024typedefcharElemType;typedefstructnode{ElemTypedata
8、;structnode*next;}LinkList;//初始化线性表voidInitList(LinkList*&h){h=(LinkList*)malloc(sizeof(LinkList));h->next=NULL;}//求线性表的长度intListLength(LinkList*h){inti=0;Link