欢迎来到天天文库
浏览记录
ID:39623269
大小:62.50 KB
页数:6页
时间:2019-07-07
《线性表的基本操作及其应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、线性表的基本操作及其应用一、实验目的1、帮助学生复习C++语言程序设计中的知识。2、熟悉线性表的逻辑结构。3、熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉链表的操作为侧重点。二、实验内容单链表的基本操作[问题描述]实现带头结点的单链表的建立、求长度,取元素、修改元素、插入、删除等单链表的基本操作。[基本要求](1)依次从键盘读入数据,建立带头结点的单链表;(2)输出单链表中的数据元素(3)求单链表的长度;(4)根据指定条件能够取元素和修改元素;(5)实现在指定位置插入和删除元素的功能。三
2、、概要设计开始建立带头结点的元素为了实现上述程序功能,应该选择线性链表的链式存储,而总体设计如下:查找第i个元素改变元素插入元素删除元素清除链表求链表的产度显示链表的元素各操作的具体函数实现:1.用尾插法建立带头结点的链表可任意输入元素(char型),voidCreatList(LinkList&L){//LinkListp;L=(LinkList)malloc(sizeof(LNode));intn=0,j=0;L->next=NULL;cout<<"请输入结点个数:";cin>>n;for(i
3、nti=n;i>0;i--){LinkListp;p=(LinkList)malloc(sizeof(LNode));cout<<"请输入一个节点数据:"<>p->data;p->next=L->next;L->next=p;Length++;//每增加一个数据,Length加一}}2.清空链表分析链表为空时,输出为空;当链表不为空时,清空链表,并输出原来的链表已经被清空!的字样告诉操作者,链表已为空了intClearList(LinkList&L){if(L->next==N
4、ULL){cout<<"链表为空!";}else{{LinkListp,q;p=L->next;while(p){q=p;p=p->next;--Length;deleteq;}}cout<<"原来的链表已经被清空!!"<5、;returnLength;}2.链表元素的展示用函数DisplayList(LinkListL)实现,首先判断链表是否为空,当链表不为空时,在从第一个元素找到并输出,主要步骤为:LinkListp;p=L->next;cout<<"链表中的数据依次为:"<<'t';while(p){cout<data<<"";p=p->next;}3.从链表中查找元素用函数GetElem_L(LinkListL)来实现该功能。先输入要查找的元素的位置,再判断是否在有效区间里,如果是的话,就用字母e返回6、并输出,主要步骤为:if(i>Length){cout<<"想要得到的元素的位置超过链表的长度"<next;intj=1;while(p&&jnext;++j;}if(!p)cout<<"第i个元素不存在";e=p->data;cout<data;1.向链表中插7、入元素这个功能是通过函数ListInsert_L(LinkList&L)实现的。首先要判断要插入的位置i是否在有效的区间里,如果是的话,接下来要找到第i-1的位置,然后是指针的一些操作,最主要的步骤是:cout<<"想要插入的元素:"<>e;LinkListp,s;p=L;while(jnext;j++;}if(!p8、9、j>i-1)cout<<"要插入的第i个元素不存在";s=(LinkList)malloc(sizeof(LNode));s->data=10、e;s->next=p->next;p->next=s;Length++;cout<<"插入成功!";2.从链表中删除元素这个功能在某种程度上与插入元素的步骤有点相似,也是先判断链表是否为空接下来是判断要删除的元素的位置i是否在有效地区间里,是的或在执行删除的功能。主要步骤如下:LinkListp,q;p=L;while(p&&jnext;++j;}if(!p11、12、j>i-1)cout<<"要删除的第i个元素不存在";q=p->next;p->next=q->n
5、;returnLength;}2.链表元素的展示用函数DisplayList(LinkListL)实现,首先判断链表是否为空,当链表不为空时,在从第一个元素找到并输出,主要步骤为:LinkListp;p=L->next;cout<<"链表中的数据依次为:"<<'t';while(p){cout<data<<"";p=p->next;}3.从链表中查找元素用函数GetElem_L(LinkListL)来实现该功能。先输入要查找的元素的位置,再判断是否在有效区间里,如果是的话,就用字母e返回
6、并输出,主要步骤为:if(i>Length){cout<<"想要得到的元素的位置超过链表的长度"<next;intj=1;while(p&&jnext;++j;}if(!p)cout<<"第i个元素不存在";e=p->data;cout<data;1.向链表中插
7、入元素这个功能是通过函数ListInsert_L(LinkList&L)实现的。首先要判断要插入的位置i是否在有效的区间里,如果是的话,接下来要找到第i-1的位置,然后是指针的一些操作,最主要的步骤是:cout<<"想要插入的元素:"<>e;LinkListp,s;p=L;while(jnext;j++;}if(!p
8、
9、j>i-1)cout<<"要插入的第i个元素不存在";s=(LinkList)malloc(sizeof(LNode));s->data=
10、e;s->next=p->next;p->next=s;Length++;cout<<"插入成功!";2.从链表中删除元素这个功能在某种程度上与插入元素的步骤有点相似,也是先判断链表是否为空接下来是判断要删除的元素的位置i是否在有效地区间里,是的或在执行删除的功能。主要步骤如下:LinkListp,q;p=L;while(p&&jnext;++j;}if(!p
11、
12、j>i-1)cout<<"要删除的第i个元素不存在";q=p->next;p->next=q->n
此文档下载收益归作者所有