c语言中的队列和栈

队列是一种特殊的线性结构,他只允许在队列的首部(head)进行删除操作删除操作,这被称为“出队”,而在队列的尾部(tail)进行插入操作,这称为“入队”。他的原则被称为“先进先出”。
队列有三个基本元素,一个数组,两个变量(head,tail)。
可以将队列封装成一个结构体类型:在这里插入图片描述
这里有一个简单的问题可以更好的理解队列:
有一串进过加密数字,要对其进行解密,规则为,首先将第一个数删除,接着再将第二个数放到这串数的末尾,再将第三个数删除并将第四个数放到这串数的末尾,再将第五个数删除,依次类推,直到剩下最后一个数,将最后一个数也删除。按照刚才的顺序把这些删除的数连在一起就是原来的数字。
解密的过程就像是将这些数排队,每次从前面拿两个,第一个扔掉,第二个放到尾部。
代码如下:在这里插入图片描述

栈是一种先进后出的数据结构,限定为只能在一端进行插入和删除操作。向一个栈插入新元素又称进栈,入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
利用栈可以很容易判断一个字符串是否为回文来判断回文字符串:
如果一个字符串是回文的,那他就必须是中间对称的,我们可以将中点以前的字符全部入栈,然后将当前栈中的字符依次出栈,看能否与中点以后的字符一一匹配,如果可以,则说明这是一个回文字符串,否则就不是。
代码如下:在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值