堆栈,队列 ,链表
1:堆栈
堆栈实现了一种后进先出的语义 (LIFO) 。可以使用数组或者是链表来实现它: 对于堆栈中的数据的所有操作都是在栈的顶部完成的,只可以查看栈顶部的数据,只能够向栈的顶部压入数据,也只能从栈的顶部弹出数据
1.堆栈又名栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底;
2.堆栈就是一个桶,遵循先进后出的原则。
3.实现
typedef struct MEC_STACK {
void **stack; //这个成员用于存储数据
int capacity; //这个成员用于存储数据的容量,便于初始化
int top; //这个成员用于记录栈顶指针的位置
}MEC_STACK;
(1) 录入函数
(2) 取出函数
(3) 获取当前栈顶指针的函数
2:队列
队列是有序集合,新添加的一端为队尾,另一端为队头,当一个元素从队尾进入队列时,一直向队首移动,直到它成为移除的元素为止。这种排序是先进先出FIFO
1.数据从队列的一端进,另一端出;
2.数据的入队和出队遵循"先进先出"的原则;
3.实现
typedef struct MEC_STACK {
void **stack; //这个成员用于存储数据
int capacity; //这个成员用于存储数据的容量,便于初始化
int top; //这个成员用于队列首指针的位置
int rear; //这个成员用于队列尾指针的位置
}MEC_Queue;
(1) 录入函数
(2) 取出函数(3) 获取当前队首指针的函数
(4) 获取当前队尾指针的函数
3:链表
链表中每一个元素都是一个对象,每个对象称为一个节点,包含有数据域key和指向下一个节点的指针next。通过各个节点之间的相互连接,最终串联成一个链表。链表分为单向链表和多向链表
双向链表typedef struct MEC_STACK {void **stack; //这个成员用于存储数据
int top; //这个成员用于记录前面节点的位置
int rear; //这个成员用于记录后面节点的位置
}MEC_Queue;
(1) 插入函数
(2) 删除函数
本文来自博客园,作者:给香菜送点香菜,转载请注明原文链接:https://www.cnblogs.com/mingkewang/articles/17160253.html

浙公网安备 33010602011771号