河南工业大学实验报告_实验一线性结构(二)——栈和队列的操作.doc

上传人:scccc 文档编号:12211064 上传时间:2021-12-02 格式:DOC 页数:5 大小:48.50KB
返回 下载 相关 举报
河南工业大学实验报告_实验一线性结构(二)——栈和队列的操作.doc_第1页
第1页 / 共5页
河南工业大学实验报告_实验一线性结构(二)——栈和队列的操作.doc_第2页
第2页 / 共5页
河南工业大学实验报告_实验一线性结构(二)——栈和队列的操作.doc_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《河南工业大学实验报告_实验一线性结构(二)——栈和队列的操作.doc》由会员分享,可在线阅读,更多相关《河南工业大学实验报告_实验一线性结构(二)——栈和队列的操作.doc(5页珍藏版)》请在三一文库上搜索。

1、xxxx大学实验报告课程名称数据结构实验项目实验一线性结构(二)一一栈和队列院系信息学院计类系专业班级计类1501姓名学号指导老师日期批改日期成绩实验目的1. 熟练掌握栈的存储结构及相关典型操作。2. 熟练掌握队列的存储结构及相关典型操作。二实验内容及要求实验内容:1建立链式栈,实现栈的初始化、进栈、出栈等典型操作。2建立循环队列,实现队列的初始化、进队、出队等典型操作。实验要求:1 键盘输入数据;2.屏幕输出运行结果。3 要求记录实验源代码及运行结果。4.运行环境:VC+三实验过程及运行结果循环队列ttincludeO# includeOftdefine OK 1ttdefine ERROR

2、 0ttdefine OVERFLOW -2define MAXQSIZE 100 / 最大队列长度typedef struct(int *base; /初始化的动态分配存储空间int front;int rear;SqQueue;/初始化队列int InitQueue (SqQueue Q) 1 =(int*) malloc (MAXQSIZEsizeof (int) : if (! exit (OVERFLOW) : / 存储 分配失败=0; return OK;/入队操作int EnQueue(SqQueue Q)(int e;if (+1)%MAXQSIZE= / 判断队满printf

3、 (,z 队列已满,不能入队 n); return ERROR;)printf(请输入入队兀素:“); scanf ("%d, &e); =e; /入队二+1)%MAXQSIZE; / 队尾指针后移 return OK;/出队操作int DeQueue(SqQueue Q)(int e;if二二/判断队空printf C队列已为空 n); return ERROR;)e二;/队头出队 一printf (,z 输出的岀队兀素为:“);printf C,%dn,/, e); =+l)%MAXQSIZE; / 队头下表后移 return OK;/队列长度int QueueLengt

4、h(SqQueue Q)(return ( /队列遍历 int QueueTraverse(SqQueue Q)(printf (“遍历结果为:); while !=printf ("%d "、);=+l)%MAXQSIZE; printf (n); return OK;int main()int n;1为入队*n);2为出队*n);3为队列长度*n);4为遍历*n);0为退出*n);SqQueue Q; InitQueue (Q); printf (* 输入 printf C* 输入 printf (* 输入 printf (* 输入 printf (* 输入printf

5、 (*n)while (scanf (%d, &n), n)switch(n)case 1:EnQueue(Q);break;case 2:DeQueue(Q);break:case 3:printf C队列长度为 %dn,z, QueueLength (Q) ;break; case 4:QueueTraverse(Q);break;)return 0;链式栈# includeO#include#define OK 1#define ERROR 0#define OVERFLOW -2 typedef int Status;typedef int SElemType; typedef

6、 struct nodeSElemType data;struct node *next;SLnode,*SLinkList; typedef struct SLinkList top,base: int len;S_LinkList;/栈的初始化Status Creat_S(S_LinkList &S)(int n;SLinkList p, q;printf(茂的初始化,请输入数据,以-1结束:n);=(SLinkList )m且lloc(sizeof(SLnode);= (SLinkList )m且lloc(sizeof(SLnode);>next=;q二;=0; while

7、(scanf(d,&n), n!二-1)(P二(SLinkList )malloc (sizeof (SLnode); p->data=n;>next=p; p->next=q; q=p;+9q=>next; while(q!=lprintf ("%dn", q->data); q=q->next;printf(*n);return OK;/进栈Status Push_S(S_LinkList &S)int e;printf (请输入进栈兀素:“); scanf ("%d, &e);SLinkList p

8、, q;q二next;p= (SLinkList inalloc (sizeof (SLnode) ; p->data二e; >next=p;p->next=q; q=p; +; return OK;/ 出栈 Status Pop_S (S丄inkList &S)<SLinkList p; p=>next;if (p!=printf (“ 出栈兀素为 %dn,/, p->data) ; return OK;)int main ()S LinkList s;int a;printf (“*输入1为栈的初始化*n); printf (*输入2为入 栈 *

9、n); printf (* 输入 3 为出栈 *n);printf (* 输入 0 为退出 *n);printf(l,*nH)*while(scanf(n%dH,&a),a)switch(a)case 1:Creat_S(s);break;case 2:Push_S(s);break; case 3:Pop_S(s);break; "return 0;四调试情况、设计技巧及体会为了避免顺序栈的存储结构所带来的在操作中需要移动大量数 据的缺点,采用链栈,具有动态特性,不用设置头结点。队列是一 种先进后出带的线性表,一个链队列由头指针和尾指针唯一确定, 所以建立链表的时候,需要在对头加一个头结点,头指针指向头结

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1