-
栈的定义
栈(Stack):又叫堆栈,它是一种操作受限的线性表,其限制是在仅允许在表的一端进行插入和删除操作,又把栈叫做LIFO表(Last In Firsr Out),栈具有后进先出的特性. -
栈的顺序存储结构
栈的顺序存储结构可利用数组来实现,规定数组的第一个元素为栈底,定义一个变量存放栈顶元素所占用数组分量的下标,这个变量为栈顶指针TOP C语言中规定Top=-1表示空栈,当栈元素占据了数组的所有分量,也就是Top为数组的最大下标,我们称之为栈满 -
栈的链式存储结构
栈的链式存储结构可以用链栈来实现,链栈操作受限,插入和删除仅限于表头进行.Top同样作为链栈的栈顶指针,Count记录当前元素的个数 -
队列的定义
队列:它是一种受限的线性表,限定线性表的插入只能在表头位置进行,而删除只能在表尾进行,又把队列叫做FIFO(First In First Out),具有先进先出的特征. -
队列的顺序存储结构
可用数组模拟实现,两个变量记录队头和队尾,队头指针和队尾指针.
首尾相连的数组环叫做循环队列,循环队列由于Front Rear 两个指针相等无法区分队列是空还是满,有两种方法来判断:需要设置另一个标志位来区分;约定队列头指针在环状队列的尾指针前一个位置时作为队列满的标志.两种方法各有千秋,前一种浪费一个空间,速度快,第二种在入队,出队频繁时,速度较慢. -
队列的链式存储结构
队列的链式存储用链式队列,链表表示的队列,限制在表头删除和表尾插入的单链表;
队尾指针指向队首节点,构成一个循环链队列