设有两个栈s1、s2都采用顺序栈方式,并共享一个存储区[0, ,maxsize-1],为了尽量利用空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方式。试设计s1、s2有关入栈和出栈的操作方式 -008
设有两个栈s1、s2都采用顺序栈方式,并共享一个存储区[0, ,maxsize-1],为了尽量利用空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方式。试设计s1、s2有关入栈和出栈的操作方式
总结
算法思路
1、共享栈的定义
2、共享栈两个指针在入栈、出栈时的操作
代码注意点
1、共享栈的定义:数组空间、数组存储的两个栈顶指针
2、exit(0)和return的区别,exit(0)是直接终止进程,return是返回函数调用。
3、return 0:第一个含义一般用在主函数结束时,按照程序开发的一般惯例,表示成功完成本函数。第二个含义表示假,一般用于bool函数返回值。在C++中也可以直接用int,返回值为0时为假。宏定义ERROR 与FLASE一般为0。
return 1: 与return 0 的第二个含义相对应,表示真,正确。宏定义TRUE,OK一般为1。
return -1: 与return 0 的第一个含义相对应,表示返回一个代数值,一般用在子函数结尾。按照程序开发的一般惯例,表示该函数失败,在数据结构中,一般指**数据溢出(栈只会出现上溢)**,宏定义OVERFLOW 一般为-1。
4、switch每一个case后面都要有break
代码
1 |
|