搜索
写经验 领红包

栈和队列的介绍以及相互转换方法(栈和队列的关系)

导语:栈和队列的介绍以及相互转换

本文介绍下基础的两种数据结构,栈和队列。并用栈结构实现队列结构,用队列结构实现栈结构

栈就是只有一个口,出口和入口都是一个,所以先进来了后出去,后进来的先出去。比如进电梯,装货到货车的时候都类似一个栈结构。

队列

队列有两个口,一个入,一个出,所以先进来了先出去,后进来的后出去。我们平常排队都是这样的。

了解了基本的栈和队列的特性,我们看看这两个问题,现在只有栈,是否可以实现队列的特性,只有队列的时候,是否可以实现栈的特性。

栈结构实现队列结构

用两个栈就可以实现队列结构。因为栈是先进后出,队列是先进先出的,我们准备两个栈,一个压入,一个弹出,那么顺序就变成先进先出了。

这里有两个需要注意:

1、压入栈向弹出栈转移数据的时候,必须一次性把压入栈的数据全部转移

2、弹出栈不为空的时候,压入栈不能向弹出栈转移数据

如果不注意这两点,就会有问题的。

代码

队列结构实现栈结构

用两个队列也可以实现一个栈结构的。我们准备两个队列,一个主队列,压入和弹出操作都针对主队列。当我们要弹出数据的时候,把主队列的所有数据除了最后一个数据都转移到转移队列中,然后弹出队列中的最后一个数

当主队列弹出最后一个数后,交换两个队列的引用,转移队列成为主队列来负责数的压入,主队列变成转移队列等待下次的输出。

代码

希望对大家有所帮助,有帮助记得点赞哦!可以关注下,后面持续分享编程类的文章,谢谢!

本文内容由小若整理编辑!