下载此文档

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


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
实验目的建立栈实现十进制转八进制实验内容编程序并上机调试运行。建立栈实现十进制转八进制 //十进制转八进制#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 intpop (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() { intn; //sqstack *s; // initstack(s); conversion (n); return 0; }//主函数运行程序: 程序解析: ,要有#include<>

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

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人511709291
  • 文件大小63 KB
  • 时间2016-12-25