注册 登录
编程论坛 数据结构与算法

小议多个栈联合使用的优点

wolf赵帅 发布于 2011-03-31 00:11, 490 次点击
3.多个栈的情况:共享空间平分使用,溢出平移,栈顶,栈底指针说明为数组,
使用较为方便,如图所示:
 
S[1]       1         2              ……         N    S[M]
 
 

t[1]=b[1]    t[2]=b[2]             t[N]=b[N]    b[N+1]=M
t[1]表示第一个栈的栈底指针 每当入栈时栈底(从图上看)向右移 当t[1]=t[1+1]时 表示第一个栈上溢出 相似的 当在第i个栈进行入栈操作时 t[i]右移 当t[i]=t[i+1]时 表示第i个栈上溢出 当i>N时 这个多栈空间被用完 即组合栈上溢出 执行入栈操作结束 若想弹出第i个栈进行操作(如访问第j个合法值 并用e返回) 则只需e=b[i+j-1] 十分方便 其实多个栈的组合使用就是采用二维数组的形式 行存储的是栈顶指针(与单个栈不同的是 此时栈顶的下标小于栈底)列存储的是从第i个栈栈顶开始的元素 这是对顺序栈的操作就简单多了 尤其是访问操作 删除和插入也可以在任意合法的位置(与单个栈中只能在栈顶进行插入和删除操作形成鲜明对比)并且当单个栈上溢出时 可以用下一个栈补足正使用栈的空间
用组合链栈更好
1 回复
#2
寒风中的细雨2011-04-01 10:30
这个怎么看
1