数据结构中,删除栈顶元素时,是将栈顶指针减一 取栈顶元素给别的变量(如a),

2025-04-07 19:12:17
推荐回答(2个)
回答1:

如果采用数组来实现的栈,数组在其生存周期内将一直存在,故无法删除;如果采用动态分配空间来实现栈,则可以删除,大概就跟119.145.97.*说的差不多。但是最好不要一弹出栈顶元素就删除,因为总是会出现进栈和出栈操作,老是申请和释放空间会降低效率,所以一般来说是最后不需要这个栈了,再一次性释放所有的空间。

回答2:

ElemType Pop(Lsnode *h)
{ int x;
p=(Lsnode *)malloc(sizeof(Lsnode));
if(h->next!=NULL)
{
p=h->next;
h->next=p->next;
x=p->data;
free(p);
return x;
}
else {printf("Stack null!\n");return '#';}
}