普通网友 2017-03-03 06:58 采纳率: 36.4%
浏览 1314

取出来的不是栈顶,怎么取栈顶,和push栈顶?

#include
#include
#include

struct nod{
int num;
struct nod *next;
};
typedef struct nod node;

node* create()
{
node* stack;
stack=(node*)malloc(sizeof(node));
stack->next=NULL;
return(stack);
}
int push(int n,node* s)
{
node* tmp=NULL;
tmp = (node*)malloc(sizeof(node));
tmp->next=s->next;
s->next=tmp;
tmp->num=n;
return 0;

}
int pop(node* s)
{
node sr;
int n ;
n=s->next->num; //取出来的不是栈顶的元素值啊,要是栈顶就一直是0啊
sr=s->next;
s->next=s->next->next;
free(sr);
return n;
}
int main()
{
node
st;
int sn;
st = create();
push(5,st);
push(5,st);
sn = pop(st);
printf("%d\n",sn);
return 0;
}

  • 写回答

2条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?