栈和队列
栈
栈是一种特殊的线性表,栈只允许在固定的一端进行插入和删除元素操作。进行更改数据的一端被称为栈顶,另一端为栈底。栈中的元素遵循后进先出的原则。
栈的操作分为压栈和出栈。栈的插入为压栈,栈的删除操作为出栈。
因为栈要经常在一端进行插入删除操作,所以在实现上一般可以使用数组或者链表实现。
// 定长的静态栈
typedef struct Stack
{
int _a[100]; //这里是开辟一个拥有定长空间的栈
int _top; //栈顶数据
}Stack;
1 //支持动态增长的栈结构 2 typedef struct Stack 3 { 4 int * _a; 5 int _top; //栈顶 6 int _capicity; //容量 7 }Stack;
队列
队列只允许在一端进行数据操作,在另一端进行删除操作的特殊线性表,队列遵循先进先出的特点,就类似于日常生活中的排队。只允许在队尾入队,在队头出队。
队列需要在两端进行数据的操作,所以在实现上使用链表的结构。
1 typedef struct Queuenode
2 {
3 int _data;
4 Queuenode * _next;
5 }Queuenode;
6
7
8 typedef struct Queue
9 {
10 Queuenode* _front; //队头
11 Queuenode* _rear; //队尾
12 }Queue;

浙公网安备 33010602011771号