下载此文档

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


文档分类: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 int pop (sqstack *s,int *e)
{if(s->top==s->base)
return 1;
*e=*--s->top;
return 0;
}//若栈不为空,则删除 s 的栈顶元素,用 e 返回其值,返回 0K, 否则返回
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);
prin tf("\n");
} 〃对于输入的任意一个非负十进制整数,打印出与其等值的八进制数
int mai n()
{
int n;
//sqstack *s; // in itstack(s); con versi on (n); return 0;
}〃主函数
运行程序:
T F:\Debu g\Debug\ c
程序解析:
,要有#inclu

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

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人cjc201601
  • 文件大小16 KB
  • 时间2021-08-04
最近更新