数据结构之进制转换.doc_第1页
数据结构之进制转换.doc_第2页
数据结构之进制转换.doc_第3页
数据结构之进制转换.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

算法与数据结构实验报告实验三 实验名称: 栈和队列进制转换 姓名: X X X 学号: 211106365 专业: 软件工程 班级: X班 指导教师: X X X 日期: 2013年 月 日 一、 实验目的学会应用栈或队列解决进制转换问题,熟练掌握在顺序栈(队列)或链栈(队列)上实现的各种基本操作。二、 实验内容与实验步骤 内容:利用栈实现十进制和其他任意进制数的任意转换输出问题进制转换原理:N = (N div d) *d + N mod d(其中:div 为整除运算,mod 为求余运算)步骤: 1 定义栈数据类型,采用链式存储结构实现 2 链栈基本操作函数原型声明 3 初始化栈 4 输入栈5 输出栈6 判空栈7 自定义实现进制转换函数8 数据调试 9 程序结束三、 实验环境操作系统winXP、开发平台:Microsoft Visual C+6.0四、 实验过程与分析程序设计过程中忘了考虑到开始报数的数不能超过最大编号;而导致程序的健壮性不足,经修改后,解决了这一问题;五、 实验结论 (1348)10 = (2504)8 (11)10 = (B)16(8)10 = (1000)2六、 附录 #define STACK_INIT_SIZE 100 /存储空间初始分配量#define STACKINCREMENT 10 /存储空间分配增量#define ERROR 0 #define OVERFLOW -2 #include #include#include typedef int SElemType;typedef struct SElemType *base;/ 在栈构造之前和销毁之后,base 的值为NULL SElemType *top;/ 栈顶指针 int StackSize; /当前已分配的存储空间,以元素为单位SqStack;void InitStack(SqStack *s) /初始化栈 s-base =(SElemType*)malloc (STACK_INIT_SIZE * sizeof(SElemType); if(!s-base) exit(OVERFLOW); s-top=s-base; s-StackSize= STACK_INIT_SIZE;void Push(SqStack *s,SElemType e) / 输入栈if (s-top-s-base=s-StackSize) s-base=(SElemType *) realloc (s-base,(s-StackSize+STACKINCREMENT)*sizeof(SElemType); /栈满,追加存储空间 if(!s-base) exit(OVERFLOW); /若内存中没有s-StackSize+STACKINCREMENT个连续空间则分配失败 s-top=s-base+s-StackSize; s-StackSize+=STACKINCREMENT; *s-top+ =e;int Pop(SqStack *s,SElemType *e) /输出栈 if (s-top=s-base) return ERROR; s-top=s-top-1; *e = *s-top;int StackEmpty(SqStack s) /判空栈 if (s.top =s.base) return 1;else return 0;void Conversion(int N,int m) SElemType e; SqStack s; InitStack(&s); while(N) Push(&s,N%m); N= N/m; printf(转换后的%d进制数为:,m); while(StackEmpty(s)!=1) Pop(&s,&e); if(e=10) printf(%c,e-10+A);else printf(%d,e); printf(n);void main() int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论