| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 806 人关注过本帖
标题:请教高手,一个简单的栈应用?
取消只看楼主 加入收藏
编程小呆
Rank: 2
来 自:西电
等 级:论坛游民
帖 子:31
专家分:23
注 册:2010-3-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
请教高手,一个简单的栈应用?
程序代码:
//将一个十进制数转换为八进制数
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>

#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;

typedef struct SqStack{
    int *base;
    int *top;
    int stacksize;
}SqStack;

Status InitStack(SqStack &S){
    S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
    if(!S.base) exit(OVERFLOW);
    S.top=S.base;
    S.stacksize=STACK_INIT_SISE;
    return OK;
}

Status Push(SqStack &S,int e){//入栈操作
    if(S.top-S.base>=S.stacksize){
        S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
        if(!S.base) exit(OVERFLOW);
        S.top=S.base+S.stacksize;
        S.stacksize+=STACKINCREMENT;
    }
    *S.top=e;
    S.top++;
    return OK;
}

Status Pop(SqStack &S,int e){//出栈操作
    if(S.top==S.base)  return ERROR;
    S.top--;
    e=*S.top;
    return OK;
}

void conversasion(){//转换函数
    int N,e;
    SqStack S;
    InitStack(S);
    printf("请输入要转换为8进制的10进制数为:",N);
    scanf("%d",&N);
    while(N){
        Push(S,N%8);
        N=N/8;
    }
    while(S.top!=S.base)
        Pop(S,e);
    printf("%d",e);
}

int main(){
    conversation();
    return 0;
}
搜索更多相关主题的帖子: 应用 
2010-04-01 18:12
编程小呆
Rank: 2
来 自:西电
等 级:论坛游民
帖 子:31
专家分:23
注 册:2010-3-20
收藏
得分:0 
好详细啊,真是谢谢了,我刚学数据结构,很多都不懂,今天花了好长时间都没有找出问题的所在,总觉得应该是那样,真的万分感谢
2010-04-01 23:14
编程小呆
Rank: 2
来 自:西电
等 级:论坛游民
帖 子:31
专家分:23
注 册:2010-3-20
收藏
得分:0 
还有那个实现数值转换的代码,可以使任意数制间相互转换,多谢

2010-04-01 23:18
编程小呆
Rank: 2
来 自:西电
等 级:论坛游民
帖 子:31
专家分:23
注 册:2010-3-20
收藏
得分:0 
回复 7楼 xuru1990
结贴了,没分给你了
2010-04-07 16:11
快速回复:请教高手,一个简单的栈应用?
数据加载中...
 
   



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

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