C语言之栈与队列的简单实现

先简单的讲一下我学到的概念;

【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:删除队列中的元素就是出队操作,插入一个元素就是入队操作;栈的删除和插入也是同样的道理;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值