- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 线性表 知识教学目标 线性表的逻辑结构 线性表的顺序存储结构及其基本操作 线性表的链式存储结构及其基本操作 循环单链表和双向链表 顺序表和链表的比较 线性表基本运算的时间复杂度 能力培养目标 单链表上的各种操作实现 单向循环链表的基本操作实现 顺序表上的插入、删除和查找运算 单链表上的插入、删除和查找运算 单向循环链表上查找等基本运算 双向链表的定义和运算特点 2.1 线性表及其逻辑结构 2.1.1 线性表的定义 线性表(Linear List)是一种线性数据结构,其特点是数据元素之间存在“一对一”的关系。在一个线性表中每个数据元素的类型都是相同的,即线性表是由同一数据类型的n(n=0)个数据元素的有限序列。 2.1.2 线性表的运算 1) 置空表 2) 求长度 3) 取表中第i个结点 4) 按值查找 5) 插入结点 6) 删除结点 7) 判空表 2.2 线性表的顺序存储 2.2.1 顺序表 用顺序存储方法存储的线性表称为线性表的顺序存储结构,简称为顺序表。它是将线性表中的结点按其逻辑次序依次存储在一组地址连续的存储单元中。 假设线性表L中初始结点a1的内存地址为LOC(a1),而每个结点在计算机中占用c个存储单元,则第i个结点ai的地址LOC(ai)可通过以下公式计算: LOC(ai) = LOC(a1) + (i–1)* c 1≤i≤n 因此我们用结构体类型来定义顺序表。其定义如下: typedef int DataType; //DataType的类型可根据实际情况而定,这里假设为int #define MaxSize 100 //MaxSize顺序表可能的最大长度 typedef struct { DataType data[MaxSize]; //数组data用于存放表结点 int length; //变量length表示表的长度 }SeqList; 2.2.2 顺序表的基本操作 【算法2.1】 置空表InitList(L)。 顺序表的初始化操作,将顺序表的当前长度置为0。算法如下: void InitList (SeqList *L) { L-length=0; } 【算法2.2】 求长度LengthList(L)。 求顺序表中结点的个数。算法如下: int LengthList (SeqList *L) { return L-length; } 【算法2.3】 取结点GetNode(L,i)。 DataType GetNode (SeqList *L , int i) { if (i1) || (iL-length) return NULL; //i的值非法,返回空类型 else return L-data[i-1]; //返回第i个结点(下标是i-1)的值 } 【算法2.4】 判空表IsEmpty(L)。 int IsEmpty(SeqList *L) { if (L-length == 0) return TRUE; else return FALSE; } 1. 查找操作 【算法2.5】 顺序表结点的定位算法。 int LocateNode (SeqList *L , DataType x) { int i; for ( i=0; i L-length; i++ ) if ( L-data[i] == x ) return i; //返回x所在的下标 else return -1; //返回-1作为查找失败的标志 } 该算法的时间复杂度为O(n)。 2. 插入操作 【算法2.6】 顺序表插入结点算法。 int InsertList (SeqList *L , int i , DataType x) { int j; if ( L-length==MaxSize) //表满溢出 { printf(“顺序表已满!”); return (-1); } if (i1 || iL-length+1) //i为非法位置 { printf(“位置出错!”); return (0); } for (j=L-length ; j=i-1 ; j--) //结点依次后移 L-data[j+1]=L-data[j]; L-data[i-1]=x; L-length++; //表长增加1
您可能关注的文档
- 控制工程基础第3版 孔祥东 王益群课件 第二章新.ppt
- 控制工程基础第3版 孔祥东 王益群课件 第六章新.ppt
- 控制工程基础第3版 孔祥东 王益群课件 第三章新.ppt
- 控制工程基础第3版 孔祥东 王益群课件 第十章新.ppt
- 控制工程基础第3版 孔祥东 王益群课件 第一章新.ppt
- 企业管理 第2版 陈其林 企业管理新.ppt
- 企业纳税实务 宣国萍 商兰芳 主编项目二 2.1新.ppt
- 人因工程学 郭伏 钱省三 第5章色彩环境 讲稿新.ppt
- 上机练习 练习素材新.ppt
- 上篇第6章制冷装置的安装及调试 上篇第6章制冷装置的安装与调试新.ppt
- 数据结构(第二版) 郑泳 方风波 第九章 查找新.ppt
- 数据结构(第二版) 郑泳 方风波 第六章 树新.ppt
- 数据结构(第二版) 郑泳 方风波 第七章 图新.ppt
- 数据结构(第二版) 郑泳 方风波 第四章 串新.ppt
- 数据结构(第二版) 郑泳 方风波 第一章 概论新.ppt
- 数据结构——C++实现 缪淮扣 顾训穰 沈俊 数据结构-第八章新.ppt
- 数据结构——C++实现 缪淮扣 顾训穰 沈俊 数据结构-第二章新.ppt
- 数据结构——C++实现 缪淮扣 顾训穰 沈俊 数据结构-第七章新.ppt
- 数据结构——C++实现 缪淮扣 顾训穰 沈俊 数据结构-第四章新.ppt
- 数据结构——C++实现 缪淮扣 顾训穰 沈俊 数据结构-第五章新.ppt
最近下载
- 2025年中国心力衰竭诊断和治疗指南更新要点解读.pdf VIP
- 百度免费文档批量下载工具说明书.pdf VIP
- 质量管理的55个细节.pptx VIP
- 2025年物理普通高中学业水平考试合格性考试考试试卷含答案 .pdf VIP
- 绿色设计产品评价技术规范 鞋类.docx VIP
- 哈尔滨商业大学《大学物理》2025—2026学年第一学期期末试卷(A卷).docx VIP
- [纺织标准]FZT 01104-2010 机织印染产品取水计算办法及单耗基本定额.pdf
- 2025年年轻干部学习教育对照查摆问题清单(五个方面).docx VIP
- 电力巡线方案.pdf VIP
- G2809A-2005部队油库加油站设计与施工规范(完整版).doc VIP
文档评论(0)