首页 湖北理工(黄石理工)数据结构实验 实验三栈、队列的实现及应用一

湖北理工(黄石理工)数据结构实验 实验三栈、队列的实现及应用一

举报
开通vip

湖北理工(黄石理工)数据结构实验 实验三栈、队列的实现及应用一实验报告 实验课程名称 数据结构 班级 09计科(1)班 实验项目名称 实验三 栈、队列的实现及应用 指导老师 祁文青 姓 名 *** 学 号 ** 评  分 实验地点 K4-206 实验日期 一、实验目的和要求 1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。 2、掌握栈和队列的特点,即先进后出与先进先出的原则。 3、掌握栈和队列的基本操作实现方法。 二、实验内容 任务1:实现栈的顺序存储和链式存储 #include...

湖北理工(黄石理工)数据结构实验 实验三栈、队列的实现及应用一
实验报告 实验课程名称 数据结构 班级 09计科(1)班 实验项目名称 实验三 栈、队列的实现及应用 指导老师 祁文青 姓 名 *** 学 号 ** 评  分 实验地点 K4-206 实验日期 一、实验目的和 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。 2、掌握栈和队列的特点,即先进后出与先进先出的原则。 3、掌握栈和队列的基本操作实现方法。 二、实验 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 任务1:实现栈的顺序存储和链式存储 #include "stdio.h" #include "stdlib.h" #include "malloc.h" #include "iostream.h" # define STACK_INIT_SIZE 100 # define STACKINCREMENT 10 # define MAXQSIZE 100 # define OK 1 # define ERROR 0 typedef int SElemType; typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack; int InitStack(SqStack &S) { S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!S.base) { cout<S.stacksize) { S.base=(SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT*sizeof(SElemType))); if(!S.base) { cout<>j; for(n=0;n0;n--) { Pop(S,e); printf("%d ",e); }printf("\n");} 实验结果: 任务2、利用栈实现数制转换 #include #include #include # include # define STACK_INIT_SIZE 100 # define STACKINCREMENT 10 # define MAXQSIZE 100 # define OK 1 # define ERROR 0 typedef int SElemType; typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack; int InitStack(SqStack &S) { S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!S.base) { cout<S.stacksize) { S.base=(SElemType *)realloc(S.base,(S.stacksize+ STACKINCREMENT*sizeof(SElemType))); if(!S.base) { cout< 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式求值 #include #include #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 using namespace std; typedef double SElemType; typedef struct SqStack { SElemType *base; SElemType *top; int stacksize; }SqStack; void InitStack (SqStack &S) { S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType)); if(!S.base) exit (-1); S.top=S.base; S.stacksize=STACK_INIT_SIZE; } bool GetTop (SqStack S,SElemType &e) { if(S.top==S.base) return false; e=*(S.top-1); return true; } int Push(SqStack &S,SElemType e) { if(S.top-S.base>=S.stacksize) { S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S.base) exit(-1); S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; } *S.top++=e; return true; } int Pop(SqStack &S,SElemType &e) { if(S.top==S.base) return false; e=*--S.top; return true ; } char Precede(char a1 ,char a2) { char r; switch(a2) { case'+': case'-': if(a1=='('||a1=='#') r='<'; else r='>'; break; case'*': case'/': if(a1=='*'||a1=='/'||a1==')') r='>'; else r='<'; break; case'(': if(a1==')') { cout<<"括号匹配错误!"<': Pop(OPTR,e); Pop(OPND,b); Pop(OPND,a); Push(OPND,Operate(a,e,b)); break; } } else if(c>='0'&&c<='9'||c=='.') { int i=0; while(c>='0'&&c<='9'||c=='.') { Data[i]=c; i++; c=getchar(); } Data[i]='\0'; d=atof(Data); Push(OPND,d); } else { cout<<"error!输入错误!"<next=NULL; return (OK); } int DestroyQueue(LinkQueue &Q) { while(Q.front) { Q.rear=Q.front->next; free(Q.front); Q.front=Q.rear; } return (OK); } int EnQueue(LinkQueue &Q,QElemType e) { QNode *p; p=(QueuePtr)malloc(sizeof(QNode)); if(!p) {printf("Overflow !"); return (ERROR); } p->data=e; p->next=NULL; if(Q.front==NULL) { Q.front=Q.rear=p; return (OK); } Q.rear->next=p; Q.rear=p; return (OK); } int DeQueue(LinkQueue &Q,QElemType &e) { if(Q.front==Q.rear) { printf("If it was deleted, it's empty !"); return (ERROR); } QNode *p; p=Q.front->next; e=p->data; Q.front->next=p->next; free(p); return (OK); } int QueueTraverse(LinkQueue Q,void(*vi)(QElemType)) { QueuePtr p; p=Q.front->next; while(p) { vi(p->data); p=p->next; } printf("\n"); return OK; } void visit(QElemType i) { printf("%d",i); } void main() { int i,j; int e; QElemType d; LinkQueue q; i=InitQueue(q); if(i) for(j=1;j<=8;j++) { cin>>e; EnQueue(q,e); } QueueTraverse(q,visit); DeQueue(q,d); printf("删除了队头元素%d\n",d); DestroyQueue(q); printf("销毁队列后,q.front=%u q.rear=%u\n",q.front, q.rear); } 实验结果: 三、结论 1、掌握了栈和队列的顺序存储结构和链式存储结构, 2、掌握栈和队列的特点,即先进后出与先进先出的原则,掌握栈和队列的基本操作实现方法。。 3、了解了队列的指针。 四、教师批阅 3
本文档为【湖北理工(黄石理工)数据结构实验 实验三栈、队列的实现及应用一】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_788212
暂无简介~
格式:doc
大小:174KB
软件:Word
页数:3
分类:理学
上传时间:2012-05-31
浏览量:42