| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 315 人关注过本帖
标题:数据结构栈的问题 大家看看为什么出不了结果 最终出现内存不能written.....
取消只看楼主 加入收藏
liuting8181
Rank: 2
等 级:论坛游民
帖 子:54
专家分:19
注 册:2011-4-21
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:2 
数据结构栈的问题 大家看看为什么出不了结果 最终出现内存不能written.....
用栈做一个进制转换
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>

#define OK 1
#define ERROR 0
#define FALSE 0
#define  TRUE 1

#define STACK_INIT_SIZE 100
#define ADD_SIZE 10

typedef int Status;
typedef  int SElemType;
typedef struct  
{
    SElemType *base;
    SElemType *top;
    int length;

}SqlStack;

Status InitStack(SqlStack *s)     //初始化栈
{
    s->base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
    if(!s->base)
        exit(0);
    s->top=s->base;
    s->length=STACK_INIT_SIZE;
    return OK;
}

Status GetTop(SqlStack *s)   //取栈顶元素
{
    if(s->top==s->base)
        return ERROR;
    return *(s->top-1);
}

void Push(SqlStack *s,int e)  //入栈
{
    if(s->top-s->base>=STACK_INIT_SIZE)
    {
        s->base=(SElemType*)realloc(s->base,(STACK_INIT_SIZE+ADD_SIZE)*sizeof(SElemType));
        if(!s->base)
        exit(0);
        s->top=s->base+s->length;
        s->length+=ADD_SIZE;
    }

    *s->top++=e;
}

Status Pop(SqlStack *s,SElemType e)//出栈
{
    if(s->top==s->base)
        return ERROR;
    else
        e=*--s->top;
    return e;
}
Status  EmptyStack(SqlStack *s)//判断栈空
{
    if(s->top==s->base)
        return 0;
    else
        return 1;
}

void ClearStack(SqlStack *s)  //清空栈
{
    s->top=s->base;
    s->length=STACK_INIT_SIZE;
   
}
void  DestroyStack(SqlStack *s)  //销毁栈
{
    s->top=NULL;
    s->length=0;
    free(s->base);
    s->base=NULL;

}


void conversion()    // 10进制转8进制
{
    int num;
    int e,e1;
    SqlStack *L;

    InitStack(L);

    printf("\t请输入一个正整数:");
    scanf("%d",&num);

    while(num)
    {
        Push(L,num/8);
        num%=8;
    }
    while(!EmptyStack(L))
    {
        e=Pop(L,e1);
        printf("%d",e);
    }
}

int main(void)   
{
    conversion();

    return 0;
}
2011-09-15 15:19
liuting8181
Rank: 2
等 级:论坛游民
帖 子:54
专家分:19
注 册:2011-4-21
收藏
得分:0 
回复 2楼 laoyang103
为什么还是出现那个 内存不能written的问题,编译明明没有错误。。这是什么原因?请指教下。。。
2011-09-15 22:17
liuting8181
Rank: 2
等 级:论坛游民
帖 子:54
专家分:19
注 册:2011-4-21
收藏
得分:0 
回复 6楼 czsbc
是啊,多谢指教。。。你一说还真是那么回事。。嘿嘿
2011-09-16 09:58
快速回复:数据结构栈的问题 大家看看为什么出不了结果 最终出现内存不能written ...
数据加载中...
 
   



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

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