注册 登录
编程论坛 数据结构与算法

第一次写栈,撞墙啊!!求助

h1023417614 发布于 2013-01-15 13:09, 830 次点击
程序代码:
#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;
}


只有本站会员才能查看附件,请 登录
11 回复
#2
h10234176142013-01-15 13:19
刚发不久;我就自个儿找到毛病了;成功了;;我的分啊
不过  请大家多多发言啊

程序代码:
void translate(int n,int b)//转换
{  
    int i;
    zhan *s,a;
    s=&a;
    setstack(s);
    while(n)
#3
h10234176142013-01-15 13:21
不终止悬赏,,散分啦
#4
cwds2013-01-15 13:28
不知道你的进栈出栈函数做的什么。。。你应该是想自己实现一个链表形式的堆栈,那进栈函数应该是申请内存来存放新结点的值,然后把新节点加到栈顶;出栈是将栈顶的节点移除,并释放掉内存。具体的还是查看资料先吧。
#5
不玩虚的2013-01-15 13:55
既然散分啦,我就来混混啦。今天回家了,有空大家再玩啦!
#6
peach54602013-01-15 13:56
哇,散分,这么好的事,我来接...
#7
LLC_HJW2013-01-15 17:22
好羡慕啊,可以写出这么棒的代码!不知道我什么时候才会达到这样的水平,努力中······
#8
h10234176142013-01-15 17:49
回复 4楼 cwds
不是吧???你说的应该是头插入法建立单链表啊!!!!我的是在创立栈是分配空间啊!!!
#9
a1511412013-01-15 17:55
      c
#10
arsenalpw2013-01-15 19:42
楼主是在做数据结构作业么....
#11
azzbcc2013-01-15 19:58
o,jie
#12
h10234176142013-01-15 20:54
回复 10楼 arsenalpw
有何意图啊
1