C++与数据结构第一次上机实验线性表.docxVIP

C++与数据结构第一次上机实验线性表.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C与数据结构第一次上机实验线性表

实验一 线性表数据结构(C++语言描述)实验报告   实验一 线性表 实验目的和要求: 掌握线性表顺序存储结构和链式存储结构的基本思想; 掌握顺序表和单链表的基本操作。 实验原理: 线性表的定义:数据之间存在一对一的线性关系的数据结构的称为线性结构,也可称为线性表。 顺序存储结构:用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系是由元素的存储的存储位置来表示的,通常用一维数组来表示。 顺序表的优点:存储密度大、空间利用率高、,无需为表中元素之间的逻辑关系而增加额外的存储空间。 顺序表的缺点:插入和删除操作需要移动大量的元素;表的容量难以确定;造成空间的“碎片”。 在程序设计语言中,通常用一维数组来表示表的存储区域。假设用data[ListSize]来表示一段顺序表,其中ListSize是一个根据实际问题规模定义的足够大的整数,另外用一个实际变量length来表示当前实际元素的个数,表中的数据从data[0]开始依次存放,表空时length=0. 链式存储结构:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系是用指针来表示的。 链式存储结构的优点:插入和删除操作方便省时。 链式存储结构的缺点:存储空间的开销大。 链式存储的方法是使用结点构造链。每个结点分为数据域和指针域两部分组成。数据域用来存放数据元素,指针域用来存放后继存储单元的地址。 实验内容 对于给定的单链表L,设计一个算法,删除L中值为x的结点的直接前驱结点。 已知两个单链表LA和LB分别表示两个集合,其元素递增排列,设计算法求出LA和LB的交集C,要求C同样以递增的单链表形式存储。 实验设计: 1、(1)伪算法: 建立链表L; 循环有哪些信誉好的足球投注网站数据值为x的前一结点,若已至表尾,且其值不为value,警告,退出程序;否则,重新拉链,将数值为x的结点的前一结点标记,将被标记的结点断开,回收被删除的结点的内存空间,将链表长度减1。 (2)实验代码: //对给定的链表L,设计一个算法,删除L中值为x的结点的直接前驱结点 #includestdlib.h #includeiostream using namespace std; class ListNode //建立结点类 {public: char data; ListNode *link; ListNode(){link=NULL;} ListNode(int item,ListNode *next=NULL) {data=item; link=next; } }; class List //建立链表类 {public: List(){ListNode *q=new ListNode;first=last=q;} void Great(List L); void InsertL(char zifu); void Print(); char Removevalue(char value); private: ListNode *first,*last; int length; }; void List::Great(List L) //建立链表函数 { char n; int l,i; cout请输入链表的长度:; cinl; cout请输入数据:; for(i=1;il+1;i++) { cinn; L.InsertL(n);} L.length++; } void List::InsertL(char zifu) { ListNode *newcode=new ListNode; newcode-data =zifu; newcode-link=NULL; if(first==NULL) {first=newcode; last=newcode; } else last-link=newcode; last=newcode; } char List ::Removevalue(char value) //该函数实现删除值为x的结点的前一结点 { ListNode *p=first,*q,*h; while(p-link!=NULLp-link-data!=value) {h=p;p=p-link; } if(p-link==NULLp-data!=value)

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档