该文章根据自己的理解创作,如有不对,请多指正!
栈的实现
首先我们得清楚栈的数据结构是什么样的,我们来看一张图
现在栈中我存进去5个元素,跟数组一样,从低地址开始存储,但是当它出栈的时候就只能从高地址开始出,比如像图中一样,就只能先出5,然后再出4,保持先进后出的原则,接着我们分步来实现栈
1.自己定义一个栈。
2.初始化栈。
3.入栈和出栈。
4。获取栈顶元素。
5.获取栈中的有效数据个数。
6.检测栈是否为空。
7.销毁栈。
首先我们来定义一个栈
接着我们对栈初始化
再完成探空函数,因为许多函数都需要用到探空函数
再完成入栈函数
接着完成出栈
获取栈顶有效元素
销毁栈
队列的实现
在实现队列之前,我们必须也得了解队列的数据结构,我们用链表来实现,我们来看图。
当我们把一个个的数据用链表链接起来后,如果要出队列那么就是1先出队列,保持先进先出的原则
我们先看看实现队列需要实现哪些功能
队列初始化
队尾入列
检查队列是否为空
队头出队列
获取头部元素和尾部元素
获取有效元素个数
销毁队列
这里要注意,不能直接free(q->front),因为可能还存在多个节点所以得使用while循环进行销毁
感谢大家!