标题:链栈,求大神看看我写的有什么问题,为什么运行会出错
取消只看楼主
lisen10
Rank: 1
来 自:广东
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-5-6
结帖率:100%
已结贴  问题点数:20 回复次数:3 
链栈,求大神看看我写的有什么问题,为什么运行会出错
#include"stdio.h"
#include"malloc.h"

typedef int DataType; //定义栈的数据类型

typedef struct node
{
    DataType data;
    struct node *next;
}LinkStack;


//初始化栈
void InitStack(LinkStack *top)
{
//    top=(LinkStack *)malloc(sizeof(LinkStack));
    top->next=NULL;
}
//进栈
int Push(LinkStack *top,DataType x)
{
    LinkStack *s;
    s=(LinkStack *)malloc(sizeof(LinkStack));
    if(!s) //当s==NULL执行
        return 0;
    s->data=x;
    s->next=top->next;
    top->next=s;
    return 1;
}
//判断栈空
int EmptyStack(LinkStack *top)
{
    if(top->next==NULL)
        return 1;
    else
        return 0;
}
//出栈
int Pop(LinkStack *top,DataType *e)
{
    LinkStack *s;
    if(EmptyStack(top))
        return 0;
    s=top->next;
    *e=s->data;
    top->next=s->next;
    free(s);
    return 1;
}

//测试函数
void main()
{
    LinkStack *top; //定义栈顶指针--相当头指针
    InitStack(top);//初始化一个栈

//    DataType e;
//    e=1;
//    Push(top,e);
//    Pop(top,&e); printf("%d ",e);


}
搜索更多相关主题的帖子: int  next top return 
2017-11-11 21:51
lisen10
Rank: 1
来 自:广东
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-5-6
得分:0 
/*
//初始化栈
LinkStack * InitStack()
{
    LinkStack *top;
    top=(LinkStack *)malloc(sizeof(LinkStack));
    top->next=NULL;
    return top;
}*/
////////////////////
void InitStack(LinkStack *top)
{
    top=(LinkStack *)malloc(sizeof(LinkStack));
    top->next=NULL;
}

为什么第二种方法不行?

前方是未知的,下一步需要找准方向与个性的配合。
2017-11-12 09:39
lisen10
Rank: 1
来 自:广东
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-5-6
得分:0 
void InitStack(LinkStack *top)
{
//    top=(LinkStack *)malloc(sizeof(LinkStack));//在main()里申请空间却可以,why?
    top->next=NULL;
}

前方是未知的,下一步需要找准方向与个性的配合。
2017-11-12 10:03
lisen10
Rank: 1
来 自:广东
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-5-6
得分:0 
回复 5楼 yuccn
这个通过返回值的我知道,我比较有疑问的是:传指针过函数,申请空间并使指针指向这个空间,为什么不能实现?

前方是未知的,下一步需要找准方向与个性的配合。
2017-11-12 15:57



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




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

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