数据结构复习笔记二:栈与队列

一:栈

1、栈是限定仅在表尾进行插入和删除操作的线性表

2、栈顶:表尾

3、栈底:表头

4、栈又称为后进先出的线性表,LIFO结构

5、顺序栈:栈的顺序结构利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素

6、在顺序栈中栈底指针指向栈底位置,base的值为NULL,表明栈结构不存在

7、在顺序栈中栈顶指针指向栈顶位置,top=base,表明栈为空

8、栈的顺序存储结构的表示(实现?)

9、构造一个空栈(实现?)

10、获取栈顶元素(实现?)

11、栈元素的插入(实现?)

12、栈元素的删除(实现?)


二、栈的应用举例

1、数制转换

2、括号匹配的检验

3、行编辑程序

4、迷宫求解

5、表达式求值(重点)|(后缀表达式)|(前缀表达式)|(中缀表达式)


三、栈与递归实现

1、递归函数:一个直接调用自己或者通过一系列的调用语句间接地调用自己的函数

2、应用:数学函数、数据结构(二叉树、广义表)、算法问题(八皇后问题、汉洛塔问题)

3、在高级程序语言中调用函数和被调用函数之间的链接及信息交换需通过来进行


四、队列

1、队列是一种先进先出(FIFO的线性表,只允许在表的一端进行插入,而在另一端删除元素。

2、队尾:在队列中允许插入的一端叫做队尾;

3、队头:在队列中允许删除的一端叫做队头;

4、双端队列:限定插入和删除操作在表的两端进行的线性表

1)输出受限:一个端点允许插入和删除,另外一个端点只允许插入的双端队列

2)输入受限:一个端点允许插入和删除,另外一个端点只允许删除的双端队列

5、链队列

1)链队列(图3.1 链队列示意图

2)空的链队列的判决条件为头指针和尾指针均指向头结点(图3.11 a空队列

3)链表的存储结构(实现

4)构造一个空队列(实现

5)销毁队列(实现

6)入队列图3.11 b入队列)|(实现

7)出队列图3.11 d出队列)|(实现

6、循环队列

1)顺序队列:用一组地址连续的存储单元依次存放从队头到队尾的元素,附加两个指针分别指向队列元素和队尾元

(初始化建空队列的条件)|(插入)|(删除

2)循环队列:将顺序队列构造成为一个环状空间(图3.14循环队列的头尾指针

3)循环队列为空的条件(?)

4)循环队列满的条件(?)

5)循环队列的顺序存储结构(实现

6)构造一个空循环队列(实现

7)循环队列的长度(实现

8)循环队列插入元素(实现

9)循环队列删除元素(实现?)




展开阅读全文

没有更多推荐了,返回首页