数据结构堆栈

stackItem StackTop(Stack S){
if(StackEmpty(S)) Error("Stack is empty");
else return S->data[S->top];
}
这里的S->data[S->top]; 该怎么解释啊 data[S->top]什么意思啊 data[++S->top]?S->data[s->top--]?

void Push(StackItem x, Stack S){
if(StackFull(s) ) Error("Stack is full");
else S->data[++S->top]=x;
}

void pop(Stack S){
if(StackEmpty(S)) Error("Stack is empty");
else return S->data[s->top--]
}

第1个回答  2010-01-15
S->data[S->top];
S是一个堆栈指针,data是S的成员变量,存储堆栈的数据,top也是S的成员变量,表示堆栈的栈顶。整个这句话得到的是栈顶的元素。
由于是用数组模拟的堆栈,这里data是一个存储数组,top表示的下标。data和top都是S的成员。
第2个回答  2010-01-15
top指向栈顶元素,
data[++S->top],先将top加一,然后将值赋予当前top指向的位置,即栈顶,
data[s->top--],先将栈顶元素取出,然后将top--,即栈顶向下移动一位。本回答被提问者采纳
第3个回答  2010-01-15
S->top是一个int型变量,就是结构体S中的top变量,你可以理解成一个整数
S->data[]是结构体S中的数组data
S->data[S->top]是data数组中,下标为S->top的量
相似回答