数据结构两栈共享空间

Posted bigjunoba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构两栈共享空间相关的知识,希望对你有一定的参考价值。

  一、栈的顺序存储的一个很大的缺陷就是必须事先确定数组存储空间大小,万一不够用了,就要用编程手段来扩展数组的容量,非常麻烦。

  二、对于一个栈,也只能尽量考虑周全,设计出合适大小的数组来处理;但是对于两个相同类型的栈,可以做到最大限度地利用其事先开辟的存储空间来进行操作。

  三、如果有两个相同类型的栈,为它们各自开辟了数组空间,极有可能是第一个栈已经满了,再进栈就溢出了,而另外一个栈还有很多存储空间。所以两栈共享空间的思想是:让一个栈的栈底为数组的开始端,即下标为0处,另一个栈的栈底为数组的末端,即下标为数组长度的n-1出,这样,两个栈如果增加元素,就是两端点向中间延伸。当两个栈见面之时,也就是两个指针相差1时,即top1 + 1 == top2时为栈满。

  四、两栈共享空间的C语言代码实现:

  五、两栈共享空间的Java语言代码实现:

以上是关于数据结构两栈共享空间的主要内容,如果未能解决你的问题,请参考以下文章

两栈共享存储空间

共享栈- 两栈共享空间

栈和队列

Java 大话数据结构 线性表之栈

数据结构&算法08-栈概念&源码

java两栈实现一个队列