前言
Everyday English
栈(Stack)
图文解释
实现添加删除元素
实现查看清空栈
完整代码
运行示例
栈的选择题
队列(Queue)
图文解释
队列的基本用法
完整代码
运行结果
队列的好处
结尾
前言
Everyday English
A friend in need is a friend indeed.
患难见真情。
栈(Stack)
图文解释
栈最直白的想象就是羽毛球筒了(假设从一个口取)。
比如说我想按照红-橙-黄的顺序放进去,并取出橙色羽毛去,得进行以下操作:
1.放入红-橙-黄色羽毛球。
2.取出顶部的黄色羽毛球。
3.取出顶部的橙色羽毛球。
下面请欣赏我的纯手绘图片:
现在请你把注意力放在黄色羽毛球上,它在放进筒时是最后一个放进去的,而被取出来时是第一个被取出来的;而红色羽毛球却是最后一个被取出来的。所以栈有一个很重要的性质:
先进后出,后进先出(LIFO:Last in first out)
实现添加删除元素
添加:将元素入栈并使指针右移一位。
void add(int n)//添加元素至栈顶 { tmp++; a[tmp]=n; }
删除:将元素出栈并使指针左移一位。
void pop()//删除栈顶元素 { a[tmp]=0;//这一步可要可不要 tmp--; }
实现查看清空栈
查看:把数组从1-tmp输出一下即可。
void look(int n[]) { for(int i=1;i