首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

一个双向栈的有关问题

2012-02-10 
一个双向栈的问题◆3.15③ 假设以顺序存储结构实现一个双向栈,即在一维数组的存储空间中存在着两个栈,它们的

一个双向栈的问题
◆3.15③ 假设以顺序存储结构实现一个双向栈,即在一维数组的存
储空间中存在着两个栈,它们的栈底分别设在数组的的两个端点。
试编写实现这个双向栈tws的三个操作:初始化inistack(tws)、入栈
 push(tws,i,x)和出栈pop(tws,i,x)的算法, 其中i为0或1,用以分
别指示设在数组两端的两个栈,并讨论按过程(正/误状态变量可设
为变参)或函数设计这些操作算法各有什么优缺点。

实现下列3个函数:
Status InitStack(TwoWayStack &tws, int size);
Status Push(TwoWayStack &tws, int i, SElemType x);
Status Pop(TwoWayStack &tws, int i, SElemType &x);

双向栈类型定义如下:
typedef struct {
  SElemType *elem;
  int top[2];
  int size; // 分配给elem的总容量
}TwoWayStack; // 双端栈

我的编写是这样的typedef struct {
   
  SElemType *top[2];
SElemType *base[2];
int size;// 分配给elem的总容量
} TwoWayStack;
Status InitStack(TwoWayStack &tws, int size)
{
tws.base[0]=(SElemType*)malloc(sizeof(SElemType));
tws.base[1]=tws.base[0]+size;
tws.top[0]=tws.base[0];
tws.top[1]=tws.base[1];
return OK;

}
这是初始化双向栈,我这样写为什么不行?总是提示Ambiguous name: TwoWayStack。怎么解决?


[解决办法]

错暂时看不出来,能不能再贴点代码啊
好像初始化分配内存有点问题,额。

探讨

有人在吗

热点排行