| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 696 人关注过本帖
标题:链栈的基本操作、指针实现,能调试不运行
取消只看楼主 加入收藏
成欢欢
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-4-16
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
链栈的基本操作、指针实现,能调试不运行
//此程序较简单,调用函数三个,为(初始化)(入栈)(出栈)。通过循环入栈实现建立栈,循环出栈实现栈的逆序输出。
//问题:调试没错,语法应该没问题,但输入值运行的时候不行,
//本人使用软件为VC++

#include<stdio.h>
#include<stdlib.h>

#define OK 1
#define ERROR 0
 
#define MASIZE  100
typedef int SElemType;
typedef int Status;

typedef struct StackNode{
    SElemType date;
    struct StackNode *next;
}StackNode,*LinkStack;
StackNode *S;

int main()
{
    Status InitStack();         //初始化
    Status Push(SElemType e);   //入栈
    Status Pop(SElemType e);    //出栈
   
    int N,i;
    SElemType X,E;
    InitStack();   //初始化

    printf("输入要建立栈的长度:");   //此处通过入栈实现栈的建立
    scanf("%d",&N);
    printf("空格隔开输入%d个数:",N);
    for(i=0;i<N;i++){
        scanf("%d",&X);
        Push(X);   //入栈
    }

    printf("逆序输出栈:");//此处通过出栈实现栈的逆序输出
    for(i=N;i>0;i++){
        E=Pop(E);   //出栈
        printf("%d",E);
    }
    return 0;
}

Status InitStack()//初始化
{
    S=NULL;
    return OK;
}

Status Push(SElemType e)//入栈
{
    StackNode *p;
    p->date=e;
    p->next=S;
    S=p;
    return OK;
}

Status Pop(SElemType e)//出栈
{
    //StackNode *p;
    if(S==NULL) return ERROR;
    e=S->date;
    //p=S;//此处用来下面释放p,我已将其注释
    S=S->next;
    //delete p;//释放原栈顶指针空间
    return OK;
}
搜索更多相关主题的帖子: next include 
2013-05-04 20:34
成欢欢
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-4-16
收藏
得分:0 
回复 4楼 y1207435881
嗯,谢谢。下次会注意的
2013-05-04 22:56
成欢欢
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-4-16
收藏
得分:0 
回复 2楼 azzbcc
原理基本懂,实际操作还要学学
2013-05-04 22:58
快速回复:链栈的基本操作、指针实现,能调试不运行
数据加载中...
 
   



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

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