下载此文档

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


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)
数据结构栈十进制转八进制的算法详解已测试过
实验目的
建立栈实现十进制转八进制
实验内容
编程序并上机调试运行。
建立栈实现十进制转八进制
编写程序
//十进制转八进制
#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 n;
//sqstack *s;
// initstack(s);
conve

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

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人王思婷
  • 文件大小118 KB
  • 时间2021-06-05