- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
项目二 线性表 《数据结构》教学讲义.ppt
1.建立单链表 LinkList *Create (LinkList *L) {//建立一个单链表,将新结点插入表尾 Node *r, *s; ElemType c; int i; *L = (LinkList) malloc (sizeof(Node)); //为头结点分配存储空间 r = *L; //r初值指向头结点 for (i = 1; i = n; i ++) {READ (c); //获取一个数据元素 s = (LinkList) malloc (sizeof(Node)); //生成一个新结点 s - data = c; //将要插入数据元素的值赋给新结点的数据域 s - next = NULL; //链表末尾结点指针域为空 r - next = s; //将新结点插入到当前链表的表尾上 r = s; } //r始终指向链表的当前表尾 return L; } 算法描述如下: 该算法的时间复杂度为O(n) 2.插入数据元素 算法描述如下: Status ListInsert (LinkList *L, int i, ElemType e) {//在单链表L中第i个位置插入一个数据元素e Node *p, *s; int j = 0; p = *L; while (p != NULL j i - 1) {//找到第i-1个结点 p = p - next; j ++; } if (j != i - 1) return FALSE; //未找到插入位置,出错处理 s = (LinkList) malloc (sizeof (Node));//生成新结点 s - data = e; //将要插入数据元素的值赋给新结点的数据域 s - next = p- next; //插入新结点 p - next = s; return TRUE; } 该算法的时间复杂度为O(n) 3.删除数据元素 数据结构 项目二共分为三个任务 项目二 线性表 任务一 线性表的定义和基本操作 任务二 线性表的顺序存储结构 任务三 线性表的链式存储结构 一、线性表的定义 二、线性表的基本操作 任务一 线性表的定义和基本操作 一、线性表的定义 线性表是由n(n≥0)个类型相同的数据元素a1,a2,…,an组成的有限序列,数据元素之间是一对一的关系,记作 L=(a1, a2, …, ai-1, ai, ai+1, …, an) 二、线性表的基本操作 ① InitList (L):初始化线性表L,即构造一个空的线性表L。 ② DestroyList (L):线性表L已存在,将表L销毁。 ③ ClearList (L):线性表L已存在,将表L置为空表。 ④ ListEmpty (L):线性表L已存在,如果表L为空则返回TRUE,否则返回FALSE。 ⑤ ListLength (L):线性表L已存在,返回表L的长度,即表中数据元素 的个数。 ⑥ GetElem (L, i):线性表L已存在,返回表L中第i(1≤i≤ListLength (L))个元素的值。 一、顺序表的结构特点 假设线性表中有n个数据元素,每个元素占用k个存储单元,其中第一个数据元素a1的存储地址称为线性表的起始位置或基地址,线性表的顺序存储结构如图2-1所示。 相邻两个数据元素的存储地址之间的关系: LOC(ai+1)=LOC(ai)+k 第i个数据元素ai的存储地址: LOC(ai)=LOC(a1)+(i-1)×k 线性表的顺序存储结构是一种随机存取的存储结构。 若已知线性表的起始位置(基地址)和表中每个数据元素所占存储单元的大小k,就可以计算出线性表中任意一个数据元素的存储地址,这种存取元素的方法称为随机存取法 顺序表的存储结构通常用一维数组来描述,用C语言实现线性表的顺序存储结构的类型定义如下: #define c 100 //线性表的最大长度 typedef struct { ElemType elem [MAXSIZE]; //存储线性表中数据元素的数组 int length; //线性表的当前长度 }SeqList; typedef struct { ElemType *elem; //线性表中数据元素的基地址 int length; //线性表的当前长度 int listsize; //当前为线性表分配的存储容量 }SeqList; 也可以这样来定义: 定义一个顺序表的方法有两种: 方法一:SeqList L,表示将L定义为SeqList类型的变量; 方法二:SeqList *L,表示将L定义为指向SeqList类型的指针。
您可能关注的文档
最近下载
- DB13T 298.3-1997 结球甘蓝品种(系)区域试验调查项目及要求.pdf VIP
- 2025年新改版人教版七年级上册地理全册精编知识点 (背诵用).pdf
- 三菱FR-D740变频器使用手册(应用篇)-说明书.pdf
- 2025年国家开放大学《农村经济管理》形考作业三答案.docx VIP
- DB13T 298.3-1997 结球甘蓝品种(系)区域试验调查项目及要求.docx VIP
- DELTA台达ASDA-A2伺服驱动器使用手册.pdf
- 水工隧洞课件.pptx VIP
- 精益管理培训-拉动式生产方式.pdf VIP
- 部编版语文六年级上册第五单元【集体备课】.pptx VIP
- (完整版)华师版七年级下册数学知识点总结.pdf VIP
文档评论(0)