先简单的讲一下我学到的概念;
栈
【1】含义:可以说像一个桶,入栈,就像把东西放进那个桶里面,先放进去的肯定是最底层,后放进的肯定在上层;出栈,因为只有一个门所以上面的东西就可以先拿出来。
【2】特点:先进后出
代码:
#include//给定数组的最大长度 int Q[10000]; //只需要栈顶 int top; //栈,要从栈顶进入 void push(int x) { Q[top++]= x; //每入栈一个数字,就让top++; } //出栈操作,也是从栈顶出去 int pop() { //一定要先top自减 top--; return Q[top]; } int main() { int x; scanf("%d",&x); push(x); printf("%dn",pop()); return 0; }
队列
【1】含义:顾名思义,就是一条队伍,而对于一条队伍,我们能对它做什么?自然是,进入队伍,离开队伍。(举例:上选修课,老师突然兴起要点名,点一个来一个排好队,这叫入队;等人排好以后就一个个出去,这个操作叫出队)
【2】特点:先进先出,后进后出
代码:
#includeint Q[100000]; //排头和排尾 int first,last; //入队操作 void push(int x) { Q[last++]=x; } //出队操作 int pop() { return Q[first++]; } //这里只放一个元素,放多个可以依照原理 int main() { int x; //将x放入队列中,并让它出队 scanf("%d",&x); push(x); printf("%d ",pop()); return 0; }
PS:删除队列中的元素就是出队操作,插入一个元素就是入队操作;栈的删除和插入也是同样的道理;



