资源描述
实验报告(一):学号:XX实验 名称栈和队列的操作指导教师XXX实验 地点XXX实验日期XXX实验 目的理解栈和队列的概念,完成栈和队列的各种基本操作同组 成员无实验过程、项目简介进制转换通过编写函数实现十进制浮点数到 R进制的转换,在十进制浮点数的整数部分 利用栈结构实现,小数部分用队列结构实现。二、项目实施:1读取数据并获得小数点位置2.将字符串转为整数形式3.对整数部分进行入栈4.获得小数部分并入队嗣舷后的4做 in num=(int) (smal*ai small = 5mall*airn- innum;q-j-rear=tq-rar+L) %size;q-dataq- r 色 arl5.整数和小数的联合输出6.源代码:#i nclude #include #in elude #define size 10 小数部分大小#defi ne maxsize 20 /整 数部分大小*小数部分一一队列typedef structchar data10;读取转制后的小数部分int fron t,rear; / 队首尾指针Queue; /循环队列*/初始化队列void ini t_Queue(Queue* q) _q-fro nt=q-rear=O;*/入队int push_Queue(Queue *q,i nt x) _if(q-rea r+1)%size=q-fro nt)判断队满printf(队列满!不允许入队n); return 0;elseq-rear=(q-rea 叶1) % size; q-dataq-rear=x;return 1;*/出队int pop_Queue(Queue *q,i nt *x) _if(q-rear=q-front)printf(队空!);return 0;elseq-fro nt=(q-fro nt+1)%size; *x=q-dataq-fro nt;/ 读取队头元素return 1;*/整数部分一一栈typedef structchar datai nt100; int top;Stack;*/-制空栈void in it_Stack(Stack *s) _s-top=0;*/进栈in t push_Stack(Stack *s,i nt x) _if(s-top=maxsize)printf(栈已满!);return 0;elses-datai nts-top=x;/ 数据进栈s-top+;return 1;*/出栈in t pop_Stack(Stack *s,i nt *x) _if(s-top=0)printf(栈空,无数据可取!); return 0;elses-top-;*x=s-dataints-top; / 取处数据 return 1;*int main()主程序/*读入数据char a20;int aim;printf(请输入一个十进制浮点数:gets(a);printf(请输入目标进制:);sca nf(%d,&aim);if(aim=1) prin tf(ERROR! PLEASE INPUT 1);return 0;);/以字符串形式输入一个浮点数A NUMBER AND IT IS BIGGER THAN/*读取小数点位置int i;in t pos;/小数点位置 for(i=0;istrle n( a);+i)if(ai=.)pos=i;break;*/定义栈对整数部分转化后并入栈Stack ss;ini t_Stack(& ss);/ 初始化栈*将整数部分转换为int型int begi n=1;int bnum;if(aO=-) int bn um = a1-O;/判断是否为负数begi n=2;else bnum=aO-O; for(i=begi n;i=O;i-)/ 先从顶端出栈prin tf(%d ,ss.data in ti);else printf(无数据!);/prin tf(n);/*定义队列并将小数部分转化后入队 Queue q,*cq 二&q;ini t_Queue(cq);/*将小数点后面的部分转为浮点数int c=1;int anum=apos+1-0;for(i=pos+2;istrle n( a);i+)an um=a num*10+(ai-0);c+;double small=(double)a num )/pow(10,c);/printf(小数部分:%lfn,small);/*/依次求得小数部分的每一位并入队int zz;int innum;for(i=0;ifron t)%size;i!=(cq-rea r+1)%size;i=(i+1)%size) prin tf(%d ,cq-datai);/*return 0;实验总结通过对数据的单个读取并入栈,后续的出栈顺序为从上到下,先进后出,读取数据后为相 反的顺序,而队列的顺序出队为先进先出,对小数的存储可直接进行读取。
展开阅读全文