中国民族民间舞蹈:有关数据结构中的一个问题请教?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/27 23:43:16
(2)入栈
void Push(STACK *S,Elemtype elem)
{
p=(LINKLIST*)malloc(sizeof(LINKLIST));
if (!p) exit(OVERFLOW);
else { p->elem=elem;
p->next=S->top;
S->top=p;
}
}
谁能跟我解释一下p->next=S->top;
S->top=p;这两句?怎么理解?谢谢了!

入栈的不是要放在栈顶么,
你又不知道栈顶地址是多少,但是top指针正好是指向栈顶的。
p->next=S->top;
就是把刚才入栈的数据放在栈顶

放完了,新数据成了栈顶了
所以S->top=p;就是把新数据变成栈顶。