先简单的讲一下我学到的概念;
栈
【1】含义:可以说像一个桶,入栈,就像把东西放进那个桶里面,先放进去的肯定是最底层,后放进的肯定在上层;出栈,因为只有一个门所以上面的东西就可以先拿出来。
【2】特点:先进后出
代码:
#include<stdio.h>
//给定数组的最大长度
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("%d\n",pop());
return 0;
}
队列
【1】含义:顾名思义,就是一条队伍,而对于一条队伍,我们能对它做什么?自然是,进入队伍,离开队伍。(举例:上选修课,老师突然兴起要点名,点一个来一个排好队,这叫入队;等人排好以后就一个个出去,这个操作叫出队)
【2】特点:先进先出,后进后出
代码:
#include<stdio.h>
int 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:删除队列中的元素就是出队操作,插入一个元素就是入队操作;栈的删除和插入也是同样的道理;
|