为了增加内存空间的利用率和减少溢出的可能性,通常采用两个栈利用同一块存储空间的方法。通常两个栈的栈底设在内存空间的两端,而栈顶相向,迎面增长。已知有两个枝s1、s2都采用顺序栈方式,并且共享一个存储区[0~maxsize-1]。设计共享存储空间的两个栈s1

admin2023-02-06  29

问题 为了增加内存空间的利用率和减少溢出的可能性,通常采用两个栈利用同一块存储空间的方法。通常两个栈的栈底设在内存空间的两端,而栈顶相向,迎面增长。已知有两个枝s1、s2都采用顺序栈方式,并且共享一个存储区[0~maxsize-1]。设计共享存储空间的两个栈s1、s2的入栈和出栈算法。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释;

选项

答案(1)栈s1、s2共享向量空间,将两栈栈底设在向量两端。初始时,s1栈顶指针为-1,s2栈顶为maxsize。两栈顶指针相邻时为栈满。两栈顶相向,迎面增长,栈顶指针指向栈顶元素。 (2)算法设计如下: [*]

解析
转载请注明原文地址:https://kaotiyun.com/show/yEwD777K
0

相关试题推荐
最新回复(0)