| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 830 人关注过本帖
标题:第一次写栈,撞墙啊!!求助
只看楼主 加入收藏
h1023417614
Rank: 4
等 级:禁止访问
帖 子:211
专家分:237
注 册:2012-11-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
第一次写栈,撞墙啊!!求助
程序代码:
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#define size 5

typedef struct
{
    int *base;
    int *top;
    int stack_size;
}zhan;


void setstack(zhan *s);//创栈
int isempty(zhan *s);//判空
int isfull(zhan *s);//判满
void enter(zhan *s,int a);//进栈
int gout(zhan *s);//出栈
void translate(int n,int b);//转换

int main()
{
    int n,b;
    printf("输入你要转换的整数");
    scanf("%d",&n);
    printf("输入要转换几进制");
    scanf("%d",&b);
    translate(n,b);
    getchar();
return 0; 
}

void translate(int n,int b)//转换
{  
    int i;
    zhan *s;
    setstack(s);
    while(n)
    {
        enter(s,n%b);
        n=n/b;
    }
    while(!isempty(s))
    {
        i=gout(s);
        printf("%d",i);
    }
}

void setstack(zhan *s)//创栈
{
    s->base=(int*)malloc(size*sizeof(int));
    if(!s->base)exit(1);
    s->top=s->base;
    s->stack_size=size;
}

int isempty(zhan *s)//判空
{
    return s->top==s->base;
}

int isfull(zhan *s)//判满
{
    return s->top==(s->base+(size-1));
}

void enter(zhan *s,int a)//进栈
{
    if(isfull(s))
    {
        printf("栈满了");
        exit(1);
    }
    *s->top++=a;
}

int gout(zhan *s)//出栈
{
    if(isempty(s))
    {
        printf("栈空了");
        exit(1);        
    }
    return *--s->top;
}


图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: color 
2013-01-15 13:09
h1023417614
Rank: 4
等 级:禁止访问
帖 子:211
专家分:237
注 册:2012-11-30
收藏
得分:0 
刚发不久;我就自个儿找到毛病了;成功了;;我的分啊
不过  请大家多多发言啊

程序代码:
void translate(int n,int b)//转换
{  
    int i;
    zhan *s,a;
    s=&a;
    setstack(s);
    while(n)
2013-01-15 13:19
h1023417614
Rank: 4
等 级:禁止访问
帖 子:211
专家分:237
注 册:2012-11-30
收藏
得分:0 
不终止悬赏,,散分啦
2013-01-15 13:21
cwds
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:23
专家分:134
注 册:2012-6-17
收藏
得分:3 
不知道你的进栈出栈函数做的什么。。。你应该是想自己实现一个链表形式的堆栈,那进栈函数应该是申请内存来存放新结点的值,然后把新节点加到栈顶;出栈是将栈顶的节点移除,并释放掉内存。具体的还是查看资料先吧。
2013-01-15 13:28
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:3 
既然散分啦,我就来混混啦。今天回家了,有空大家再玩啦!

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-01-15 13:55
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:3 
哇,散分,这么好的事,我来接...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-01-15 13:56
LLC_HJW
Rank: 2
等 级:论坛游民
帖 子:58
专家分:39
注 册:2013-1-11
收藏
得分:3 
好羡慕啊,可以写出这么棒的代码!不知道我什么时候才会达到这样的水平,努力中······
2013-01-15 17:22
h1023417614
Rank: 4
等 级:禁止访问
帖 子:211
专家分:237
注 册:2012-11-30
收藏
得分:0 
回复 4楼 cwds
不是吧???你说的应该是头插入法建立单链表啊!!!!我的是在创立栈是分配空间啊!!!
收到的鲜花
  • azzbcc2013-01-15 20:12 送鲜花  1朵   附言:确实有链栈的
2013-01-15 17:49
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:3 
      c

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-01-15 17:55
arsenalpw
Rank: 1
等 级:新手上路
帖 子:1
专家分:3
注 册:2013-1-15
收藏
得分:3 
楼主是在做数据结构作业么....
2013-01-15 19:42
快速回复:第一次写栈,撞墙啊!!求助
数据加载中...
 
   



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

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