文章目录
- 前言
- 第三章知识点小结
前言
提示:这里可以添加本文要记录的大概内容:
第三章知识点小结
栈和队列的定义和特点—栈
1.定义:只能在一端(栈顶)进行插入和删除运算的线性表
2.逻辑结构:与线性表相同,仍为一对一关系。
3.存储结构:用顺序栈或链栈存储均可,但以顺序栈更常见。
4.运算规则:只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO,First In Last Out)的原则。
5.实现方式:基本操作有入栈、出栈、读栈顶元素值、建栈、判断栈满、栈空等。
栈和队列的定义和特点—队列
1.定义:只能在表的一端(队尾)进行插入,在另一端(队头)进行删除运算的线性表
2.逻辑结构:与线性表相同,仍为一对一关系
3.存储结构:用顺序队列或链队存储均可
4.运算规则:先进先出(FIFO)
5.实现方式:关键是编写入队和出队函数,具体实现依顺序队或链队的不同而不同
逻辑结构 | 存储结构 | 运算规则 | |
---|---|---|---|
一般线性表 | 一对一 | 顺序表、链表 | 随机存取、顺序存取 |
栈 | 一对一 | 顺序栈、链栈 | FILO |
队列 | 一对一 | 顺序队、链队 | FIFO |
栈的表示
空栈
base == top 是栈空标志
top 指示真正的栈顶元素之上的下标地址
队列的表示
空队标志:front= =rear
入队:base[rear]=x; rear ;
rear始终指向最后一个元素的后面
出队:x=base[front]; front ;
循环队列
1.队空:front==rear
2.队满:(rear 1)%M==front
3.入队:
base[rear]=x;
rear=(rear 1)%M;
4.出队:
x=base[front];
front=(front 1)%M;