实验目的
1、掌握链表中元素的前驱、后续的概念。
2、掌握链表的建立、插入元素、删除表中某元素的操作。
3、对链表相应算法的时间复杂度进行分析。
4、理解链表数据结构的特点(优缺点)。
实验内容和要求
要求实现链表的操作集。
函数接口定义
void CreateList_L(LinkList &length,int n);//创建链表
void ListTraverse(LinkList &L);//遍历
Status PriorElem(LinkList &L,ElemType cur_e,ElemType &pre_e);//前驱
Status NextElem(LinkList L,ElemType cur_e,ElemType &next_e);//后继
Status GetElem_L(LinkList L,int i,ElemType &e);//找元素
int LocateElem_L(LinkList L,ElemType &e);//定位元素
int ListLength(LinkList L);//求表长
Status ListInsert_L(LinkList &L,int i,ElemType e);//插入
Status ListDelete_L(LinkList &L,int i,ElemType &e);//删除
Status ListReverse(LinkList &L);//倒置
LinkList结构定义如下:
typedef struct LNode{//构造结构体
ElemType data;//数据域
struct LNode *next;//指针域
}LNode,*LinkList; //名称
测试程序样例
int main()
{
char select;
int quit=0;
int i;
ElemType e,pre_e,next_e;
ElemType cur_e=0;
LinkList L;
int n;
do
{
cout<<"---------------------------------\n";
cout<<"请选择操作编号\n\n";
cout<<"1:创建链表 2:求前驱 3:求后继 \n";
cout<<"4:定位元素 5:找元素 6:求表长 \n";
cout<<"7:插入元素 8:删除元素 9:倒置\n";
cout<<"0:结束\n";
cout<<"---------------------------------\n";
cin>>select;
switch(select)
{
case '1':
CreateList_L(L,n);
cout<<"正序遍历:\n&