下载此文档

数据结构栈十进制转八进制的算法详解(已测试过).doc


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
实验目的
建立栈实现十进制转八进制
实验容
编程序并上机调试运行。
建立栈实现十进制转八进制
1. 编写程序
// 十进制转八进制
#include<> #include<> #include<>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct { int *base; int *top;
int stacksize;
}sqstack;
int initstack (sqstack *s)
{s->base=(int *)malloc(STACK_INIT_SIZE * sizeof(int)); if(!s->base)
exit(0);
s->top=s->base;
s->stacksize =STACK_INIT_SIZE ; return 0;
}// 构造一个空栈 s
int 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(1);
s->top=s->base+s->stacksize;
s->stacksize+=STACKINCREMENT;
}
*s->top++=e; return 0;
}// 插入新的元素 e 为新的栈顶元素
int stackempty (sqstack *s)
{if(s->top==s->base) return 1;
else return 0;
}// 若栈 s 为空栈,则返回 1,否则返回 0
int pop (sqstack *s,int *e)
{if(s->top==s->base) return 1;
*e=*--s->top; return 0;
}// 若栈不为空,则删除 s 的栈顶元素,用 e 返回其值,返回 OK,否则返回ERROR
void conversion (int n)
{ sqstack s; int e;
initstack(&s);
printf(" 请输入一个十进制数: \n"); scanf("%d",&n);
while (n){
push(&s,n%8); n=n/8;
}
printf("\n");
printf(" 该数的八进制数为: \n"); while(!stackempty(&s)){
pop(&s,&e); printf("%d",e);
}
printf("\n");
}// 对于输入的任意一个非负十进制整数,打印出与其等值的八进制数
int main()
{
int

数据结构栈十进制转八进制的算法详解(已测试过) 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人琥珀
  • 文件大小461 KB
  • 时间2020-11-27