注册 登录
编程论坛 VC++/MFC

自定义数据结构自动创建新堆栈问题

潇翊 发布于 2013-10-29 22:18, 589 次点击
问题:要求定义一种数据结构SetOfStack,能够在当前的堆栈满了之后,自动创建新的堆栈,并且要求对同一堆栈SetOfStack.push()和SetOfStack.pop()值相同。
我的思路是:定义结构体SetOfStack{},包含两个类型:(堆栈)结点stack<int>Node和把这些栈连接起来的指针*pNode。但是具体怎么实现,还不清楚,也不知
道这样做对不对。希望写过类似程序的给点建议吧!
3 回复
#2
yuccn2013-10-30 09:56
如果用链表来封装一个栈,除非内存被申请完,那么就可以不用考虑栈满的情况

“要求定义一种数据结构SetOfStack,能够在当前的堆栈满了之后,自动创建新的堆栈” ,你的这个栈是否是基于数组来实现的?
按你说的要求来看,估计还是的通过一个额外信息(比如链表,等)来维护你的这个数组(栈内的数据)才行。

至于代码,不想写
#3
潇翊2013-10-30 14:35
回复 2楼 yuccn
先谢谢您的回复。可能我表述不是很清楚,这里的SetOfStacks数据结构只是可以包含许多栈,当然每个栈都是有特定容量的,只在当前栈溢出后,马上申请空间来创建新的栈。
#4
潇翊2013-11-01 10:08
好不容易找到个方法,现在马上要结贴了,我把方法分享下吧。
思路:先定义一个大的栈容器,然后,把要加入的数据先压入一个新建的小栈中,最后将加了数据的小栈作为一个整体,压入到大的站容器里面,出栈的时候,同理,先出小栈,再把里面的数据出栈即可。
1