栈和队列的定义.doc_第1页
栈和队列的定义.doc_第2页
栈和队列的定义.doc_第3页
栈和队列的定义.doc_第4页
栈和队列的定义.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

闽 江 学 院 电 子 系实 验 报 告学生姓名:邓俊辉班级:电信2班学 号:120101003235课程:数据结构与算法一、 实验题目:栈和队列的定义及基本操作二、 实验地点:A210三、 实验目的:(1)、熟练掌握栈和队列的特点;(2)、掌握栈的定义和基本操作,熟练掌握顺序栈的操作及应用; (3)、掌握对列的定义和基本操作,熟练掌握链式队列的操作及应用, 掌握环形队列的入队和出队等基本操作; (4)、加深对栈结构和队列结构的理解,逐步培养解决实际问题的编程能力;四、 实验内容:(1)、定义顺序栈,完成栈的基本操作:空栈、入栈、出栈、取栈顶元素;实现十进制数与八进制数的转换,十进制数与十六进制数的转换和任意进制之间的转换;(2)、定义链式队列,完成队列的基本操作:入队和出队;五、 实验环境(使用的软硬件): VC6.0六、 实验步骤及操作:(1)10进制数转化为8进制#include #include #define MAXSIZE 100typedef struct seqstackint dataMAXSIZE;int top; seqstack;void setnull(seqstack *s) s-top=-1;void push(seqstack *s,int x)if(s-top)=MAXSIZE-1) printf(ERROR!n);else s-top+;s-datas-top=x;int pop(seqstack *s,int *t) if(s-top=-1) return NULL;else return *t=s-datas-top-;int gettop(seqstack *t) if(t-top=-1)return 0;elsereturn t-datat-top;StackEmpty(seqstack *s)if(s-top=-1)return 1;elsereturn 0;void main()int N,t;seqstack *s; s=(seqstack *)malloc(sizeof(seqstack);setnull(s);printf(请输入要转换的十进制数:); scanf(%d,&N); while(N) push(s,N%8); N=N/8; printf(转换后的八进制数:); while(!StackEmpty(s) pop(s,&t); printf(%d,t); printf(n); printf(*感谢使用数制转换程序*n);(2) 链队列的实现#include #include #define N 10typedef struct nodeint data;struct node *next;linknode;typedef structlinknode *front,*rear;linkqueue;linkqueue q;void iniqueue(linkqueue *q)q-front=(linknode *) malloc (sizeof(linknode);q-rear=q-front;q-front-next=NULL;void addqueue(linkqueue *q,int x)linknode *p;p=(linknode *) malloc (sizeof(linknode);p-data=x;p-next=NULL;q-rear-next=p;q-rear=p;int outqueue(linkqueue *q)linknode *p;if(q-rear=q-front)return NULL;elsep=q-front;q-front=q-front-next;free(p);return q-front-data;void main ()int i,aN,b; iniqueue(&q); printf(N=%d,N);putchar(n);printf(请输入N个数:);for(i=0;iN;i+)scanf(%d,&ai);addqueue( &q,ai);putchar(n);printf(“出对后的数”);for(i=0;iN;i+) b=outqueue(&q); printf(%d ,b);七、 实验结果:(1)、10进制数转化为8进制(2)链队列的实现八、 实验总结及心得体会: 感觉就是写的很不好,要有思路。这次试验程序好多调试不过是因为空间分配问题,以后会多注意的。九、 对本实验过程及方法、手段的改进建议: printf(转换后的八进制数:);注意:(当pop(s,t)时出现错误) while(!StackEmpty(s) pop(s,&t); printf

温馨提示

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

评论

0/150

提交评论