下载此文档

数据结构实验六 堆栈实验.docx


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
该【数据结构实验六 堆栈实验 】是由【shijijielong001】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【数据结构实验六 堆栈实验 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。一,实验题目
实验六堆栈实验
设计算法,把一个十进制整数转化为二进制数输出。
二,问题分析
本程序要求将一个十进制整数转化为二进制数输出。完成此功能所要解决的问题是熟练掌握和运用入栈和出栈操作,实现十进制整数转化为二进制数。
数据的输入形式和输入值得范围:输入的是一个十进制整数,且其为正整数。
结果的输出形式:输出的是一个二进制整数
测试数据:1)92)4500
三,概要设计
为了实现上述程序功能,需要:
>构造一个空的顺序栈s
>将十进制整数除以2的余数入栈
>将余数按顺序出栈
本程序包含7个函数:
主函数main();
顺序栈判栈空函数stackempty(seqstack*s)
顺序栈置空栈函数seqstack*uutstack(seqstack*s)
顺序栈入栈函数push(seqstack*s,intx)
顺序栈出栈函数pop(seqstack*s)
顺序栈取栈顶元素函数gettop(seqstack*s)
将十进制数转换为二进制数函数setnum(mtnum)各函数间关系如下:
四,详细设计
顺序表的结构类型定义:tvpedefstmct{
intdata[niaxlen];
inttop;
Jseqstack;
顺序栈入栈函数的伪代码:voidpush(seqstack*){
if(s->top<=maxlen-1&&s->top>=-!){
s->top++;
s->data[s->top]=x;}
elsepriiitf(neiTorH);}
顺序栈出栈函数的伪代码:voidpop(seqstack*s){
if(s->top>=0)s->top-;
elsepiiiitf(nenorH);}
将十进制数转换为二进制数函数伪代码:
voidsetnum(mtnum){seqstacks;initstack(&s);
while(num){mtk=num%2;
push(&s,k);
num=nunV2;}while(!stackempty(&s)){intx=gettop(&s);
pop(&s);}}
五,源代码
#
^definemaxlen100tvpedefstmct{〃定义顺序栈的结构类型intdata[niaxlen];
inttop;
}seqstack;
mtstackempty(seqstack*s){〃顺序栈判栈空算法if(s->top>=0)
return0;
else
return1;
}seqstack*nutstack(seqstack*s){〃顺序栈置空栈算法s->top=-l;
returns;
voidpush(seqstack*){〃顺序栈入栈算法if(s->top<=maxlen-1&&s->top>=-!){
s->top++;s->data[s->top]=x;
}
elsepriiitf(neiTorH);
}
voidpop(seqstack*s){〃顺序栈出栈算法
if(s->top>=0)
s->top—;
else
piiiitf(neiTorn);
}
mtgettop(seqstack*s){〃顺序栈取栈顶元素算法if(s->top<=maxlen-1&&s->top>=0)retuni(s->data[s->top]);
else
piiiitf(neiTorn);
}
voidsetnum(mtnum){〃将十进制数转换为二进制数函数
seqstacks;〃定义一个顺序栈类型变量s
iiiitstack(&s);〃置空栈s
while(num){〃进制转化
mtk=num%2;
push(&s,k);iium=iiuiii'2;
}
while(!stackempty(&s)){//当栈不为空时
mtx=gettop(&s);〃取栈顶元素pnntf(”%d”,x);〃按序输出栈顶元素
pop(&s);〃出栈
}
pnntf(”\n”);
}
voidmain(){
mtnum;
printf(”请输入一个十进制数:”);
scanf("%d".&num);
pnntf("该十进制数转换成的二进制数为:”);setnum(num);
六,调试分析
在将十进制数转换为二进制数函数中,调用出栈函数pop时实参弄错,写成pop(s),应为pop(&s),因为定义是:pop(seqstack*s),调用时,不能将seqstack转换成seqstack*<>故提示pop(s)出错。
Configuration:头鬼6-Win32Debug
Conpiling...
契鈔现r-亠一
E:\学****曦据综屿算杀\买昭6\起6・唧(聊):errorC2664:'pop1:cannotconvertparaneter1from'seqstack1to'seqstack*Nouser-defined-conuersionoperatoravailablethatcanperfornthisconversion,.
^-1error(s),0warning(s)
"擁/w聞酥
95LDebugging/
Jjj
七,使用手册
该程序是把一个十进制整数转化为二进制数输出,操作较简单,根据提示直接输入一个十进制整数,运行后即可输出一个相对应的二进制数。
八,测试结果
1,输入的十进制整数为9:
聽煮齡进制数为,關
Pressanykeytocontinue
2,输入的十进制整数为4500:
髀翁鉢蠶能蹣数为:盹
ppessanykeytocontinue

数据结构实验六 堆栈实验 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人shijijielong001
  • 文件大小29 KB
  • 时间2022-12-18