扩展资料--线性表.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
扩展资料--线性表

线性结构;线性结构;1、线 性 表;1、线 性 表;1、线 性 表;1、线 性 表; ? 特点: (1)逻辑上相邻的数据元素在物理上也相邻; (2)是顺序存储结构、随机存取数据元素。 这种存储结构只要知道元素的序号,就很容易找到第i个数据元素,且无论序号i为何值,找到第i个元素所需时间相同。;顺序表的操作 ? 建立顺序表 1)问题描述:建立一个线性表(a1,a2 ,...,an),长度为n。 2)建立过程:先输入线性表长度n的值,然后依据n值输入n个数据元素,创建出一个顺序表。;顺序表的操作;? 删除 1)问题描述:有线性表(a1,a2 ,...,an),长度为n,要将第i个元素删除。 2)删除过程:将第i+1至第n个元素依次向前移动一个位置,线性表的长度变为n-1。; 3. 顺序表的优缺点;三、线性链表 1. 非顺序存储结构——链式存储结构;链表的种类 单链表 循环链表 双向链表;单链表 1)每个元素包含两个域:数据域(data)和指针域(next),数据域用来存放元素的值,指针域用来存放后继元素的存储地址。 2)指示链表中第一个结点的指针称为头指针(head),最后一个结点没有后继结点,它的指针域为空(记为NULL或∧)。 例如:;单链表 3)表示方法 c语言定义一种节点类型:;单链表 3)表示方法 c语言定义一种节点类型:;指针与结点的常见运算;指针与结点的常见操作;3.单链表的基本操作; 建立单链表;(2)尾插法:每次新加入的结点都插在链的尾部。 LNode *H=NULL,*T,*S;//S为新加入节点,T为尾节点 …… T-next=S; S-next=NULL; T=S;;;3.单线性链表的基本操作;3.单线性链表的基本操作;3.单线性链表的基本操作;插入运算;3.单线性链表的基本操作;链表删除结点操作;线性结构;2、栈 ;2、栈 ;2、栈 ;top=0;2、栈 ;2、栈 ;线性结构;3、队列;3、队列;实现:用一维数组实现sq[M];解决方案: ?  循环队列——基本思想: 把队列设想成环形,让sq[0]接在sq[M-1]之后,若rear+1==M,则令rear=0; ;3、队列;;;1.队列初始化 SeQueue *init( ) 2.判队空 int Empty_SeQ( SeQueue *q ) 3.判队满 int Full_SeQ( SeQueue *q ) 4.入队 int In_SeQ( SeQueue *q , datatype x ) 5.出队 int Out_SeQ( SeQueue *q , datatype *x );? 链队是用链表作队的存储结构,??队的容量无法预先估计时采用。在链队中设一个头结点,头指针front始终指向头结点,尾指针rear指向队尾结点如图:;链队类型定义: typedef struct node//存储数据的链结点类型 {datatype data; struct node *next; }Qnode ; typedef struct//将头尾结点封装在一起的链队列 { Qnode *front,*rear; }Lqueue; ;链队基本运算 1.链队初始化 //创建一个空的链队 Lqueue *CreatLQ( ) 2.入队 //在队尾加入一个结点 Void Insert_LQ(Lqueue *q,datatype x) 3.判队空 Int Empty_LQ(Lqueue *q) 4.出队 //把队首结点删除 Int Out_LQ(Lqueue *q,datatype *x); 队列的操作满足FIFO原则,常应用在模拟排队的一类问题中。下面举例说明。; 队列的操作满足FIFO原则,常应用在模拟排队的一类问题中。下面举例说明。

文档评论(0)

cbf96793 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档