栈,队列,链表

 

堆栈又名栈(stack),它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。——来自百度百科

栈就像一个水井,元素只能先进后出

栈顶(Top): 栈顶是允许进行插入(进栈、压栈、入栈)和删除(出栈、弹栈、退栈)操作的一端。

栈底(Bottom): 栈底是栈的另一端,固定且不允许进行插入和删除操作。 

空栈(Empty Stack): 不含任何数据元素的栈称为空栈。

进栈(Push): 也称为压栈或入栈,是栈的插入操作。

出栈(Pop): 也称为弹栈或退栈,是栈的删除操作。

栈满(Full Stack): 当栈的存储空间已满,无法再进行进栈操作时,称栈为满栈。

栈空(Stack Empty): 当栈中不含任何元素时,称栈为空栈。

队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。——来自百度百科

队就像在食堂排队一样,只有先排队的人才能先吃饭,先进先出

 队列(Queue): 队列是一种只允许在表的一端进行插入,而在另一端进行删除的线性表。 

队头(Front): 队头是指队列中允许删除元素的一端。 

队尾(Rear): 队尾是指队列中允许插入元素的一端。

空队列: 不包含任何元素的队列称为空队列。

进队(Enqueue): 也称为入队,是队列的插入操作。 

出队(Dequeue): 也称为离队,是队列的删除操作。 

队列满: 当队列的存储空间已满,无法再进行进队操作时,称队列为满队列。 

 链表

 链表是一种物理存储单元上非连续、非顺序的存储结构数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而线性表和顺序表相应的时间复杂度分别是O(logn)和O(1)。——来自百度百科

每个元素由指针链接在一起,就像一条链子一样

 结点(Node): 链表中的基本单元,每个结点包含两部分信息:一是数据域(Data Field),用于存储数据元素;二是指针域(Pointer Field),用于存储指向下一个结点的指针(或引用)。

首元结点(First Element Node): 链表中存储第一个数据元素的结点,即链表的第一个有效结点。

头结点(Head Node): 有时在链表的第一个有效结点之前会额外增设一个结点,这个结点称为头结点。头结点的数据域一般不存放有效数据(有些情况下也可以存放链表的长度等信息),其指针域存储指向首元结点的指针。头结点对于链表来说不是必须的,但在处理某些问题时,给链表添加头结点会使问题变得简单。

头指针(Head Pointer): 指向链表中的第一个结点,这个结点可以是首元结点,也可以是头结点(如果链表有头结点的话)。

末尾结点(Last Node): 链表中存储最后一个数据元素的结点,即链表的最后一个有效结点。

尾指针(Tail Pointer): 指向链表中的最后一个结点(即末尾结点)的指针。

空链表(Empty List): 不包含任何结点的链表称为空链表。

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值