1 / 14
文档名称:

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

格式:doc   大小:238KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:tswng35 2019/10/19 文件大小:238 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:实验报告(一)姓名:11**********学号:XX实验名称栈和队列的操作指导教师xxx实验地点xxx实验日期xxx实验目的理解栈和队列的概念,完成栈和队列的各种基本操作同组成员无实验过程项目简介进制转换通过编写函数实现十进制浮点数到R进制的转换,在十进制浮点数的整数部分利用栈结构实现,小数部分用队列结构实现。项目实施::#include<>#include<>#include<>#definesize10//小数部分大小#definemaxsize20//整数部分大小//*********************************//*********************************//小数部分——队列typedefstruct{ chardata[10];//读取转制后的小数部分 intfront,rear;//队首尾指针}Queue;//循环队列//*********************************//初始化队列voidinit_Queue(Queue*q){ q->front=q->rear=0;}//*********************************//入队intpush_Queue(Queue*q,intx){ if((q->rear+1)%size==q->front)//判断队满 { printf("队列满!不允许入队\n"); return0; } else { q->rear=(q->rear+1)%size; q->data[q->rear]=x; return1; }}//*********************************//出队intpop_Queue(Queue*q,int*x){ if(q->rear==q->front) { printf("队空!"); return0; } else { q->front=(q->front+1)%size; *x=q->data[q->front];//读取队头元素 return1; }}//*********************************//*********************************//整数部分——栈typedefstruct{ chardataint[100]; inttop;}Stack;//*********************************//-制空栈voidinit_Stack(Stack*s){ s->top=0;}//*********************************//进栈intpush_Stack(Stack*s,intx){ if(s->top==maxsize) { printf("栈已满!"); return0; } else { s->dataint[s->top]=x;//数据进栈 s->top++; return1; }}//*********************************//出栈intpop_Stack(Stack*s,int*x){ if(s->top==0) { printf("栈空,无数据可取!"); return0; } else { s->top--; *x=s->dataint[s->top];//取处数据 return1; }}//*********************************主程序intmain(){ //********************************* //读入数据 chara[20]; intaim; printf("请输入一个十进制浮点数:");//以字符串形式输入一个浮点数 gets(a); printf("请输入目标进制:"); scanf("%d",&aim); if(aim==1){ printf("ERROR!PLEASEINPUTANUMBERANDITISBIGGERTHAN1"); return0; } //********************************* //读取小数点位置 inti; intpos;//小数点位置 for(i=0;i<strlen(a);++i) { if(a[i]=='.') { pos=i; break; } } //********************************* //定义栈对整数部分转化后并入栈 Stackss; init_Stack(&ss);//初始化栈//*