标题:才学链栈的进入与出栈时始终显示0怎么会事?
取消只看楼主
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
结帖率:82%
已结贴  问题点数:20 回复次数:1 
才学链栈的进入与出栈时始终显示0怎么会事?
程序代码:
#include <stdio.h>
#include <stdlib.h>

 struct node{
    float  Data;
    struct node *Next;
};

 
struct node * InitStack(){
    struct node *top;
     top = (struct node *)malloc(sizeof(struct node));
    top->Next=0;
    return top;
}

 void  Push(struct node *top, float x){
    struct node *p;
    p=(struct node *)malloc(sizeof(struct node));
    p->Next = top->Next;
    p->Data=x;
    top->Next=p;
    
}
float  Pop(struct node *top){
    if(top->Next==0){
        printf("栈为空\n");
        return 0;
    }
    struct node *p;
     p =top->Next;
    float x= p->Data;
    top->Next = p->Next;
    free(p);
    return x;
}

 
int main(void){
    struct node  *top;
     top = InitStack();
    for(int i = 0; i<11;i++){
        Push(top,i*1.0);
    }  
    printf("%d\n",Pop(top));
    printf("%d\n",Pop(top));
    printf("%d\n",Pop(top));
    return 0;
}

运行结果为0
搜索更多相关主题的帖子: struct node Next top return 
2018-05-07 15:48
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
得分:0 
回复 2楼 grmmylbs
谢谢你。
2018-05-07 16:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486731-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.395121 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved