下载此文档

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


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
实验目的建立栈实现十进制转八进制
实验内容
编程序并上机调试运行。
建立栈实现十进制转八进制

//十进制转八进制
#include<>
#include<>
#include<ma实验目的建立栈实现十进制转八进制
实验内容
编程序并上机调试运行。
建立栈实现十进制转八进制

//十进制转八进制
#include<>
#include<>
#include<>
#defineSTACK_INIT_SIZE100
#defineSTACKINCREMENT10
typedefstruct{int*base;
int*top;intstacksize;
}sqstack;
intinitstack(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;
return0;
}//构造一个空栈s
intpush(sqstack*s,inte)
{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;
return0;
}//插入新的元素e为新的栈顶元素
intstackempty(sqstack*s){if(s->top==s->base)return1;elsereturn0;
}〃假设栈s为空栈,则返回1,否则返回0
intpop(sqstack*s,int*e)
{if(s->top==s->base)
return1;
*e=*--s->top;
return0;
}〃假设栈不为空,贝U删除s的栈顶元素,用e返回其值,返回0K,否则返回ERROR
voidconversion(intn)
{sqstacks;
inte;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");
}〃对于输入的任意一个非负十进制整数,打印出与其等值的八进制数
intmain()
{intn;
//sqstack*s;//initstack(s);conversion(n);return0;
}//主函数
运行程序:
TF:\DebugVDeDug^.
谙输入一个十进制数;
123

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

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zhuwo11
  • 文件大小18 KB
  • 时间2022-03-27
最近更新