该【数据结构实验报告 栈进制转换 】是由【shijijielong001】上传分享,文档一共【6】页,该文档可以免费在线阅读,需要了解更多关于【数据结构实验报告 栈进制转换 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。数据结构试验报告
栈的应用——进制转换程序
3•出栈程序
int
{
Pop(Stack*s,int*e)
if(s-〉top==s-〉base){
returnERROR;
}
*e=*—s_>top;
returnOK;
}
4•主函数与进制转化
voidmain()
{
N;
a;
e;
int
int
int
Stacks;
InitStack(&s);
Pop(&s,&e);
Push(&s,&e);
InitStack(&s);printf("请输入十进制数:");scanf("%d",&N);
printf(〃要将N转化为几进制?〃);scanf("%d",&a);
while(N)
{
e=N%a;
Push(&s,&e);
N=N/a;
}
while(!=)
{
Pop(&s,&e);printf(〃%d〃,e);
}
free();
system(〃pause〃);
}
3•源程序
#include〈〉
#include〈〉
#include<〉
#defineSTACK_INIT_SIZE100
#defineSTACKINCREMENT10
#defineOK1
#defineERROR0
#defineOVERFLOW-1
#defineTRUE1
#defineFALSE-1
typedefstruet{
int*base;
int*top;
intstaeksize;
}Staek;
intInitStaek(Stack*s)
{
s-〉base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));if(!s-〉base)
{
exit(OVERFLOW);
}
s-〉top=s-〉base;
s->stacksize=STACK_INIT_SIZE;
returnOK;
}
intPush(Stack*s,int*e)
{
if(s->top-s-〉base〉=STACK_INIT_SIZE)
{
s-〉base=(int*)realloc(s-〉base,(s-〉stacksize+STACKINCREMENT)*sizeof(int));
if(!s-〉base)
{
exit(OVERFLOW);
}
s->top=s-〉base+STACKINCREMENT;
}
*s_〉top++=*e;
returnOK;
}
intPop(Stack*s,int*e)
if(s-〉top==s-〉base){
returnERROR;
}
*e=*—s_〉top;
returnOK;
voidmain()
{
intN;
inta;
inte;
Stacks;
InitStack(&s);
Pop(&s,&e);
Push(&s,&e);
InitStack(&s);printf("请输入十进制数:");scanf("%d",&N);
printf(〃要将N转化为几进制?〃);scanf("%d",&a);
while(N)
{
e=N%a;
Push(&s,&e);
N=N/a;
}
while(!=)
{
Pop(&s,&e);printf(〃%d〃,e);
}
free();
system(〃pause〃);
}
调试与体会
C;\UwiisMen&^Doajments'i,VisualStudio2012\Projflch,|jirizJhi\IDEbLig\jinzhieice
尹ItI
LI
■C^Uiers'denovoXDocuiTrtnt^ViiualStudio2012\PrQject5\irizhi\L>ebug-bjinz}i].ex6
ffF134B
这次数据结构作业我选择了做进制转换,首先我觉得这个比较有实际意义,其次我觉得做迷宫比较难。
这次主要是学习如何用栈,栈自动分配变量,以及函数调用时所使用的一些空间。通过编写这次程序,提高了对栈的理解,自我查找与学习交流能力,这次编写程序,自己通过结合课本知识编写了出来。但是这次暴露出自己函数调用还是有一些问题的,通过同学的帮忙解决了很小但很严重的一个问题。这次,我对数据结构和C语言也有了更多地理解。
数据结构实验报告 栈进制转换 来自淘豆网m.daumloan.com转载请标明出处.