您的位置:首页 > 理论基础 > 数据结构算法

数据结构--栈--两栈共享空间

2016-11-28 20:59 253 查看
如何将两个栈使用同一个内存空间

将一个栈的栈底为数据的终端,即下标为0

另一个栈的栈底为数据的末端,即下标为n-1

如下图:



/*两栈共享空间结构*/

typedef struct

{

    SElemType data[MAXSIZE];

    int top1;                /*栈1 栈顶指针 */

    int top2;               /* 栈2 栈顶指针*/

}SqDoubleStack;

根据图可得:

栈满的条件是:

栈1为空,栈2为满top2 = 0;

栈2位空,栈1为空top1 = n - 1;

两栈见面时,即top1 + 1 = top2;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: