数据结构(3)


1. 栈(Stack)

 1. 栈定义:栈是只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。 如下图所示:

在这里插入图片描述

 (1) 栈顶:线性表允许进行插入删除的那一端。
 (2) 栈底:固定的,不允许进行插入和删除的那一端。
 (3) 空栈:不含任何元素的空表。

 2. 栈的操作特性可以明显地概括为后进先出

 3. 栈有两种存储方式:顺序栈和共享栈。

 4. 采用链式存储的栈称为链栈,链栈的优点是便于多个栈共享存储空间和提高其效率,且不存在栈满上溢的情况。
 采用链式存储,入栈和出栈的操作都在链表的表头进行。

2. 队列(Queue)

 1. 队列定义:队列简称队。只允许在表的一端进行插入,而在表的另一端进行删除。向队列中插入元素称为入队或进队;删除元素称为出队或离队。如下图所示:

在这里插入图片描述

 (1) 队头:允许删除的一端,又称队首。
 (2) 队尾:允许插入的一端。
 (3) 空队列:不含任何元素的空表。

 2. 队列的操作特性可以明显地概括为先进先出

 3. 队列的顺序实现是指分配一块连续的存储单元存放队列中的元素,并附设两个指针:队头指针 f r o n t front front 指向队头元素,队尾指针 r e a r rear rear 指向队尾元素的下一个位置。

 4. 循环队列:将顺序队列臆造为一个环状的空间,即把存储队列元素的表从逻辑上视为一个环,称为循环队列。

 5. 队列的链式表示称为链队列,它实际上是一个同时有队头指针和队尾指针的单链表。头指针指向队头结点,尾指针指向队尾结点,即单链表的最后一个结点。

 6. 双端队列:是指允许两端都可以进行插入和删除操作的线性表。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冒冒菜菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值