欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年数据结构栈的进制转换定义 .pdf

    • 资源ID:33372964       资源大小:191.69KB        全文页数:7页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年数据结构栈的进制转换定义 .pdf

    实验三栈的基本操作的实现学号姓名班级:02宋旸 10 计本实验日期 :2012 年3 月 28 日3.1 背景知识熟悉 windows2000操作系统,具有一定的 C 程序设计语言基础,熟悉 Turboc2环境。3.2 实验目的理解栈的定义、 组织形式、结构特征和类型说明以及在相应存储方式下实现的入栈、出栈和获取栈顶元素、判栈空等算法。3.3 工具/准备工作提前编写好所要调试的程序。3.4 实验内容与步骤1将十进制数分别转换为八进制和二进制以及十六进制2要求用栈实现。3验证各操作的正确性。将十进制数 20 和 98 所对应的二进制,八进制和十六进制数分别进行输出。4、小括号的匹配/* Note:Your choice is C IDE */ #include stdio.h #include string.h #include math.h #include limits.h #include stdlib.h #include malloc.h #define TRUE 1 #define OK 1 #define FALSE 0 #define ERROR 0 #define INFEASIBLE -1 typedef int Status; typedef int SElement; #define STACK_INIT_SIZE 10 #define STACKINCREMENT 2 typedef struct SqStack SElement * base ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - SElement * top ; int stacksize ; SqStack; int InitStack (SqStack *S) (* S).base = (SElement * )malloc(STACK_INIT_SIZE * sizeof (SElement) ; if (!(*S).base) exit (OVERFLOW); S-top=S-base; S-stacksize= STACK_INIT_SIZE; return OK; int DestroyStack (SqStack *S) free (S-base); S-base = NULL; S-top = NULL; S-stacksize = 0; return OK; int ClearStack(SqStack *S) S-top = S-base; return OK; int StackEmpty(SqStack S)/判断 sqstack 是否为空 if (S.top = S.base ) return TRUE; elsereturn FALSE ; int StackLength (SqStack S)/返回 s的元素个数 ,即栈的长度 return S.top-S.base ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - int GetTop(SqStack S,int * e)/若栈不为空 ,用e返回 s的栈顶元素 ,并返回 ok if (S.top S.base ) *e=* (S.top-1); return OK; elsereturn ERROR; int Push(SqStack *S,int e)/插入元素 e为新的栈顶元素 if (S-top - S-base = S-stacksize) S-base = (SElement * )realloc (*S).base,(*S).stacksize + STACKINCREMENT *sizeof (SElement); if (!S-base ) exit (OVERFLOW); S-top = S-base + S-stacksize; S-stacksize += STACKINCREMENT; *(S-top) = e; S-top +; return OK; intPop(SqStack *S,int*e) /* 若栈不空 ,则删除 S的栈顶元素 ,用e返回其值 ,并返回 OK; 否则返回 ERROR */ if (* S).top=(* S).base) return ERROR; * e=*- (* S).top; return OK; int StackTraverse (SqStack S ,int (* visit)( int )/ while (S.top S.base ) visit ( *S.base + ); printf ( n ); return OK; void conversion8(SqStack s) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - unsigned n; int e; InitStack ( & s);/初始化栈printf ( n(=0)= ); scanf (%u,& n); while (n)/当 n不为 0 Push (& s,n%8); n=n/8; while (!StackEmpty(s) /当栈不为空 Pop (& s,& e); printf ( %d ,e); printf ( n ); void conversion2(SqStack s) unsigned n; int e; InitStack ( & s);/初始化栈printf ( n(=0)= ); scanf (%u,& n); while (n)/当 n不为 0 Push (& s,n%2); n=n/2; while (!StackEmpty(s) /当栈不为空 Pop (& s,& e); printf ( %d ,e); printf ( n ); void conversion16(SqStack s) unsigned n; char d; int e; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - InitStack ( & s);/初始化栈printf ( n(=0)= ); scanf (%u,& n); while (n)/当 n不为 0 Push (& s,n%2); n=n/2; while (!StackEmpty(s) /当栈不为空 Pop (& s,& e); switch(e) case 0:e=0;printf( %d ,e);break; case 1:e=1;printf( %d ,e);break; case 2:e=2;printf( %d ,e);break; case 3:e=3;printf( %d ,e);break; case 4:e=4;printf( %d ,e);break; case 5:e=5;printf( %d ,e);break; case 6:e=6;printf( %d ,e);break; case 7:e=7;printf( %d ,e);break; case 8:e=8;printf( %d ,e);break; case 9:e=9;printf( %d ,e);break; case 10:d=a;printf( %c ,d);break; case 11:d=b;printf( %c ,d);break; case 12:d=c;printf( %c ,d);break; case 13:d=d;printf( %c ,d);break; case 14:d=e;printf( %c ,d);break; case 15:d=f;printf( %c ,d);break; printf ( %d ,e); printf ( n ); /选择int choose() int d; printf( 请选择你要进行的进制的转换:n); printf( 如果是十进制转换为八进制请选择1n); printf( 如果是十进制转换为二进制请选择2n); printf( 如果是十进制转换为十六进制请选择3n); printf( 如果您想全部转换请选择9n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - printf( 如果想退出请选择0n); printf( n ); scanf(%d ,& d); return d; void main() int f=0; SqStack s; while(!f) switch(choose() case 1:conversion8(s);break; case 2:conversion2(s);break; case 3:conversion16(s); break; case 9:conversion8(s); conversion2(s); conversion16(s); break; case 0: f=-1; default: f=1; 3.5 实验总结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - 通过查资料等手段,将这个进制转换的程序终于弄了出来,虽然费了很多的功夫,但是还是从中学到了很多。 他使我加深了对栈的理解和运用,使我的知识不单单只停留在表边层次。在这3个进制转换时, 我用的是 3个子函数, 将其分开进行的转换, 使之更加清晰,明了,简洁。二进制与八进制的转换是类似的,都是先建立空栈,进行输入,如果不为空,通过Push (& s,n%2); n =n/2; 进行转换,即可达到效果,而十六进制的转换则要相对麻烦一点,我选择的是较简单的switch.case函数进行的单个数字的判断,输入的不同, 则输出也不同, 这样就能考虑到10以上的数字的输出了。再通过一个子函数来进行页面的操作,这个程序就这样形成了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -

    注意事项

    本文(2022年数据结构栈的进制转换定义 .pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开