| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 481 人关注过本帖
标题:求助顺序栈的程序哪里出错创建不得
取消只看楼主 加入收藏
潘能云
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-11-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
求助顺序栈的程序哪里出错创建不得
//顺序栈的基本操作
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
typedef int DataType;
struct SeStack
{  
   DataType elem[MAX];
   int top;

};
struct SeStack *s;

struct SeStack *StackInit();
struct SeStack *StackCreat();
int StackEmpty(SeStack *s);
int StackFull(SeStack *s);
void ClearStack(SeStack *s);
int LengthStack(SeStack *s);
void StackPush(SeStack *s,DataType x);
DataType StackPop(SeStack *s);
DataType StackGetTop(SeStack *s);
void Stackprint(SeStack *s);
int main(void)
{   
     
     struct SeStack *p,*q;
     p=(SeStack *)malloc(sizeof(SeStack));
     q=(SeStack *)malloc(sizeof(SeStack));
     p=StackInit();
     printf("是否为空栈:%d\n",StackEmpty(p));
     q=StackCreat();
     Stackprint(q);

   



     return 0;
}
struct SeStack *StackInit()
{
    SeStack *s;
    s=(SeStack *)malloc(sizeof(SeStack));
    s->top=-1;return s;

}
 SeStack *StackCreat()
{
    SeStack *r;int k;
    r=(SeStack *)malloc(sizeof(SeStack));
    printf("输入入栈数据,以-1作为结束标记\n");
    scanf("%d",&k);
    while(k!=-1)
    {
   
        r->elem[s->top]=k;
        r->top++;

    }
   
return r;


}

int StackEmpty(SeStack *s)
{
    if(s->top=-1)return -1;
    else return 0;
}
int StackFull(SeStack *s)
{
    if(s->top=MAX-1)  return -1;
    else return 0;
}
void ClearStack(SeStack *s)
{
    s->top=-1;
    free(s);
}
int LengthStack(SeStack *s)
{
    return (s->top+1);
}
void StackPush(SeStack *s,DataType x)
{
    if(s->top==MAX-1) printf("栈满");
    else
    {
        s->top++;
        s->elem[s->top]=x;

    }

}
DataType StackPop(SeStack *s)
{
    DataType x;
    if(StackEmpty(s)) return 0;
    else
    {
        x=s->elem[s->top];s->top--;
        return x;
    }


}
DataType StackGetTop(SeStack *s)
{     
    if(StackEmpty(s)) return 0;
    else
    {
     return s->elem[s->top];
    }
}
void Stackprint(SeStack *s)
{   
    DataType k;
    while(s->top!=-1)
    {
        printf("%d\n",s->elem[s->top]);
        k=StackPop(s);

    }

}
搜索更多相关主题的帖子: include 
2011-12-03 12:07
潘能云
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-11-3
收藏
得分:0 
回复 2楼 埋首
哦,谢谢,但我做的函数返回类型,参数传递我都看过啦 ,要不按你的改法,你指教一下
2011-12-04 14:33
快速回复:求助顺序栈的程序哪里出错创建不得
数据加载中...
 
   



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

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