帮帮忙,一道出栈入栈的问题.
设以整数序列a1,a2,a3,a4作为栈S的输入,利用push,pop操作,编程实现算法。
请各位给点提示。
问题点数:0、回复次数:13Top
1 楼bryan99(我想我是海)回复于 2003-12-01 22:47:13 得分 0
随便一本数据结构的书上就有啊!
可以设S为一个数组,a1,a2,a3,a4依次进栈,出栈只能从数组的尾端出,就可以了!Top
2 楼lyff8neo(对不起,我对你忠诚,因为你是c++)回复于 2003-12-01 23:57:03 得分 0
应该有多做情况哦!楼上的写的太简单了啊!Top
3 楼Sodier(逍遥神剑)回复于 2003-12-02 00:53:32 得分 0
数据结构书上不都有吗?Top
4 楼skywarship(很菜的小李)回复于 2003-12-02 00:58:34 得分 0
照着数据结构上打Top
5 楼rotation(很明顯)回复于 2003-12-02 10:14:13 得分 0
最簡單的,用數組實現.
template <class T> class stack
{
T array[MAX_SIZE];
unsigned int top;
public:
//.......
void push(T const& item)
{
if(top == MAX_SIZE) throw domain_error();
array[top++] = item;
}
T pop()
{
if(top == 0) throw domain_error();
return array[--top];
}
};
Top
6 楼fuxf(布衣)回复于 2003-12-02 10:46:03 得分 0
用数组实现只能实现定长度的栈.
用链表实现可以达到变长的栈.Top
7 楼njuhuangmy(茶)回复于 2003-12-02 11:25:15 得分 0
数组也可以realloc啊!
呵呵
push()
检查数组的元素个数,如果已经满了,重新申请更大的内存区域
往数组里插入这个值,并给元素个数加1
pop()
检查数组元素个数,是否为0,如果是,返回error
如果数组元素个数为n,则把array[n-1]释放掉,元素个数减1
Top
8 楼dllwei(鱼哭了)回复于 2003-12-02 11:41:53 得分 0
//----------user struct
typedef struct{
int age;
}SElemType;
#define STACK_INIT_SIZE 100;
#define STACKINCREMNET 10;
//----------stack struct
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
//-------构造一个空栈
Status InitStack(SqStack &S){
S.base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if (!S.base)
return OVERFLOW;
S.top=S.base;
S.stacksize =STACK_INIT_SIZE return OK;
}
//-------取栈顶元素
Status GetTop(SqStack S,SElemType &e){
if (S.top ==S.base ) return ERROR;
e=*(S.top -1);
return OK;
}
//-------将元素压入栈
Status Push(SqStack &S,SElemType e){
//--------空间不够的情况
if (S.top -S.base>S.stacksize){
S.base =(SElemType*)realloc(S.base ,(S.stacksize +10*sizeof(SElemType)));
if (!S.base) exit(OVERFLOW);
S.top =S.base +S.stacksize;
S.stacksize +=10;
}
//--------正常情况下
*S.top ++=e;
return OK;
}
//------------将元素弹出栈
Status Pop(SqStack &S,SElemType &e){
if (S.top ==S.base) return ERROR;
e=* --S.top ;
return OK;
}Top
9 楼lee0119(tim)回复于 2003-12-03 22:15:05 得分 0
不好意思,题打错了!
设以整数序列a1,a2,a3,a4作为栈S的输入,利用push,pop操作,求出所有的出栈序列。写出算法。Top
10 楼lee0119(tim)回复于 2003-12-03 22:17:23 得分 0
请斑竹不要结贴,本人急须!Top
11 楼abitz(阿奈)(老婆永远是对的!)回复于 2003-12-03 22:35:57 得分 0
早就猜到是这个意思了Top
12 楼dllwei(鱼哭了)回复于 2003-12-04 10:17:12 得分 0
http://search.csdn.net/expert/topic/50/5001/2000/11/6/38455.htmTop
13 楼19830711(为你守候)回复于 2003-12-04 10:27:31 得分 0
axaxaxaxaxTop




