东软数据结构实验报告通过栈和队列来实现进制转换.docx

上传人:小飞机 文档编号:4933977 上传时间:2023-05-24 格式:DOCX 页数:16 大小:158.84KB
返回 下载 相关 举报
东软数据结构实验报告通过栈和队列来实现进制转换.docx_第1页
第1页 / 共16页
东软数据结构实验报告通过栈和队列来实现进制转换.docx_第2页
第2页 / 共16页
东软数据结构实验报告通过栈和队列来实现进制转换.docx_第3页
第3页 / 共16页
东软数据结构实验报告通过栈和队列来实现进制转换.docx_第4页
第4页 / 共16页
东软数据结构实验报告通过栈和队列来实现进制转换.docx_第5页
第5页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《东软数据结构实验报告通过栈和队列来实现进制转换.docx》由会员分享,可在线阅读,更多相关《东软数据结构实验报告通过栈和队列来实现进制转换.docx(16页珍藏版)》请在三一办公上搜索。

1、实验报告(一)姓名:1111111111111学号:XX实验名称栈和队列的操作指导教师xxx实验地点xxx实验日期xxx实验 目的理解栈和队列的概念,完成栈和队列的各种基本操作同组成员无实验过程一、项目简介进制转换通过编写函数实现十进制浮点数到R进制的转换,在十进制浮点数的整数部分 利用栈结构实现,小数部分用队列结构实现。、项目实施:1.读取数据并获得小数点位置2.将字符串转为整数形式获得整数部分 aninu = apci5 十3.对整数部分进行入栈4.获得小数部分并入队Encu- .E-p*-EELrlll-EUUM s(Era*_EEE cusJHEnlJU一田ID/SSW 曷S翩必6.源

2、代码:#include #include #include #define size 10 小数部分大小#define maxsize 20 整数部分大小/ /4 44444444444444444444444444444444/小数部分队列typedef structchar data10; 读取转制后的小数部分int front,rear; 队首尾指针/Queue; 循环队列/ /*! k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!kJ/初始化队列void init_Queue(Queue* q)q-front=

3、q-rear=0;*入队int push_Queue(Queue *q,int x)if(q-rear+1)%size=q-front)判断队满printf(队列满!不允许入)n);return 0;elseq-rear=(q-rear+1) % size;q-dataq-rear=x;return 1;/ /*! k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!kJ*出队int pop_Queue(Queue *q,int *x)if(q-rear=q-front)printf( 1空!);return 0;else

4、q-front=(q-front+1)%size;*x=q-dataq-front;读取队头兀素return 1;/整数部分一一栈typedef structchar dataint100;int top;Stack;/ /J- k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!kJ/-制空栈void init_Stack(Stack *s)s-top=0;/ /*! k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!kJ*/进栈 int push

5、_Stack(Stack *s,int x) if(s-top=maxsize)printf(栈已满!);return 0;elses-dataints-top=x;/数据进栈s-top+;return 1;/ /*! k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!k!kJ*出栈int pop_Stack(Stack *s,int *x)if(s-top=0)printf(栈空,无数据可取);return 0;elses-top-;*x=s-dataints-top; 取处数据 return 1;主程序*int main

6、() *读入数据char a20;int aim;printf(输入一个十进制浮点数:);以字符串形式输入一个浮点数 gets(a);printf(请输入目标进制:”);scanf(%d”,&aim);if(aim=1) printf(ERROR! PLEASE INPUT A NUMBER AND IT IS BIGGER THAN 1);return 0;*读取小数点位置int i;int pos;/小数点位置for(i=0;istrlen(a);+i)if(ai=、)pos=i;break;/*定义栈对整数部分转化后并入栈Stack ss;init_Stack(&ss);/初 始化栈/将

7、整数部分转换为int型int begin=1;int bnum;if(a0= = -) (int bnum = a1-0;判断是否为负数begin=2;)else bnum=a0-0;for(i=begin;i=0;i-)先从顶端出栈printf(%d ,ss.datainti);else printf(无数据!”);/ printf(W);/*定义队列并将小数部分转化后入队Queue q,*cq=&q;init_Queue(cq);/*/将小数点后面的部分转为浮点数int c=1;int anum=apos+1-0;for(i=pos+2;istrlen(a);i+)anum=anum*10

8、+(ai-0);c+;double small=(double)anum)/pow(10,c);/printf(小数部分:%lfn”,small);*依次求得小数部分的每一位并入队int zz;int innum;for(i=0;ifront)%size;i!=(cq-rear+1)%size;i=(i+1)%size) printf(%d ,cq-datai);/*return 0;实验总结200. 531250 1 m弭程3吾音铤陈习蚌与进制钙换由此随顼入一个酒制浮点数:但皆入目|W: 2L 分进F 姓占:_ 1 : U 1 : (| ) , 1 : ( U 1 : r-css ex!te

9、d after 11. 08 seconds vith return value 0 腊按任意键罪续.微软拼音半: 语音朝1陈习城导进制转孩.的茫if碰入一个T若制浮点数:200. 531250L当进制昔秀:3 1 0 .4 2 0 0 0 0km:cjss exited after 8. 03 seconds vith return valiBz: Q 腊按任意键罪续,.g铜程C语音朝1陈习城导进制转孩.巳茫碰A - T t若制浮点数:200. 531250fA.目3当进皿也勺:2 1 1 u 2 . 1 1 2 1 : u km:cjss exited after 15. 61 seconds vith return value 0 腊按任意键罪续,.通过对数据的单个读取并入栈,后续的出栈顺序为从上到下,先进后出,读取数据后为相 反的顺序,而队列的顺序出队为先进先出,对小数的存储可直接进行读取。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号