ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:76.50KB ,
资源ID:2261093      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2261093.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构教程 第十七课 实验三:栈的表示与实现及栈的应用new.doc)为本站会员(dreamzhangning)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

数据结构教程 第十七课 实验三:栈的表示与实现及栈的应用new.doc

1、 数据结构教程 第十七课 实验三:栈的表示与实现及栈的应用数据结构教程 第十七课 实验三:栈的表示与实现及栈的应用教学目的: 掌握栈的存储表示方式和栈基本操作的实现方法教学重点: 栈的基本操作实现方法,栈的应用教学难点: 栈的存储表示实验内容:一、栈的实现实现栈的顺序存储。栈实现示例#include#include#include#define ERROR 0#define TRUE 1#define FALSE 0#define OK 1#define EQUAL 1#define OVERFLOW -1#define STACK_INIT_SIZE 100#define STACKINCR

2、EMENT 10typedef int Status ;struct STUchar name20;char stuno10;int age;int score;typedef struct STU SElemType;struct STACKSElemType *base;SElemType *top;int stacksize;typedef struct STACK SqStack;typedef struct STACK *pSqstack;Status InitStack(SqStack *S);Status DestroyStack(SqStack *S);Status Clear

3、Stack(SqStack *S);Status StackEmpty(SqStack S);int StackLength(SqStack S);Status GetTop(SqStack S,SElemType *e);Status Push(SqStack *S,SElemType e);Status Pop(SqStack *S,SElemType *e);Status StackTraverse(SqStack S,Status (*visit)();Status InitStack(SqStack *S)(*S)=(SqStack *) malloc(sizeof(SqStack)

4、;(*S)-base=(SElemType *)malloc(STACK_INIT_SIZE *sizeof(SElemType);if(!(*S)-base)exit(OVERFLOW);(*S)-top=(*S)-base;(*S)-stacksize=STACK_INIT_SIZE;return OK;Status DestroyStack(SqStack *S)free(S-base);free(S);Status ClearStack(SqStack *S)S-top=S-base;Status StackEmpty(SqStack S)if(S.top=S.base) return

5、 TRUE;elsereturn FALSE;int StackLength(SqStack S)int i;SElemType *p;i=0;p=S.top;while(p!=S.base)p+;i+;Status GetTop(SqStack S,SElemType *e)if(S.top=S.base) return ERROR;*e=*(S.top-1);return OK;Status Push(SqStack *S,SElemType e)/*if(S-top - S-base=S-stacksize)S-base=(SElemType *) realloc(S-base,(S-s

6、tacksize + STACKINCREMENT) * sizeof(SElemType);if(!S-base)exit(OVERFLOW);S-top=S-base+S-stacksize;S-stacksize += STACKINCREMENT;*/*(S-top+)=e;return OK;Status Pop(SqStack *S,SElemType *e)if(S-top=S-base) return ERROR;*e=*-S-top;return OK;Status StackPrintElem(SElemType * e)printf(“%s %s %d %dn“,e-na

7、me,e-stuno,e-age,e-score);Status StackTraverse(SqStack S,Status (*visit)()while(S.top!=S.base)visit(-S.top);main()SElemType e;SqStack *Sa;clrscr();printf(“nn-SqStack Demo is running.-nn“);printf(“First is Push function.n“);InitStack(strcpy(e.name,“stu1“);strcpy(e.stuno,“100001“);e.age=80;e.score=100

8、0;printf(“ Now Stack is Empty.n“);StackTraverse(*Sa,StackPrintElem);Push(Sa,e);printf(“ Now Stack has one element.n“);StackTraverse(*Sa,StackPrintElem);strcpy(e.name,“stu3“);strcpy(e.stuno,“100002“);e.age=80;e.score=1000;Push(Sa,e);printf(“ Now Stack has another element.n“);StackTraverse(*Sa,StackPr

9、intElem);printf(“ Now Pop Stack,the top elem put into variable e.n“);Pop(Sa,printf(“%sn%sn%dn%dn“,e.name,e.stuno,e.age,e.score);printf(“ Lets see the left of Stacks elem:n“);StackTraverse(*Sa,StackPrintElem);getch();printf(“nnnWelcom to visit http:/nn“);二、栈的应用、利用栈实现数制转换 、利用栈实现单行编辑以上任选一题。数制转换示例#inclu

10、de#include#includetypedef int SElemType;#include “stack.h“Status visit(SElemType * e)printf(“ %d “, *e);void conversion()pSqStack S;SElemType e;int n;InitStack(printf(“Input a number to convert to OCT:n“);scanf(“%d“,if(n#include#include#include#define EOFILE typedef char SElemType;#include “stack.h“

11、Status visit(SElemType * e)printf(“%c“, *e);char OP10=+,-,*,/,(,),#;int precede77=1,1,2,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,2,1,1,1,1,1,1,2,1,1,2,2,2,2,2,3,0,1,1,1,1,0,1,1,2,2,2,2,2,0,3;int In(char c,char *op)int i=0;while(i;case 2: return :Pop(OPTR,Pop(OPND, Pop(OPND,Push(OPND,Operate(a,theta,b);break;c=

12、GetTop(*OPND);DestroyStack(OPTR);DestroyStack(OPND);return c;main()char i;printf(“nnnnOnly within 09 evaluation,input a expression end with symbol #:n“);i=EvaluateExpression();printf(“nThis expressions result is: “);printf(“%dnnnn“,i-0);printf(“nnWelcome to visit http:/ !“);这里是实现栈的头文件#include “simuc

13、.h“#define OVERFLOW -1#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;struct STACKSElemType *base;SElemType *top;int stacksize;typedef struct STACK SqStack;typedef struct STACK *pSqStack;Status InitStack(SqStack *S);Status DestroyStack(SqStack *S);Status ClearStack(SqStack *S)

14、;Status StackEmpty(SqStack S);int StackLength(SqStack S);SElemType GetTop(SqStack S);Status Push(SqStack *S,SElemType e);Status Pop(SqStack *S,SElemType *e);Status StackTraverse(SqStack S,Status (*visit)();Status InitStack(SqStack *S)(*S)=(SqStack *)malloc(sizeof(SqStack);(*S)-base=(SElemType *)mall

15、oc(STACK_INIT_SIZE *sizeof(SElemType);if(!(*S)-base)exit(OVERFLOW);(*S)-top=(*S)-base;(*S)-stacksize=STACK_INIT_SIZE;return OK;Status DestroyStack(SqStack *S)free(S-base);free(S);Status ClearStack(SqStack *S)S-top=S-base;Status StackEmpty(SqStack S)if(S.top=S.base) return TRUE;elsereturn FALSE;int S

16、tackLength(SqStack S)int i;SElemType *p;i=0;p=S.top;while(p!=S.base)p+;i+;SElemType GetTop(SqStack S)if(S.top=S.base) return ERROR;return *(S.top-1);Status 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(OVERFLOW);S-top=S-base+S-stacksize;S-stacksize += STACKINCREMENT;*/*(S-top+)=e;return OK;Status Pop(SqStack *S,SElemType *e)if(S-top=S-base) return ERROR;*e=*(-(S-top);return OK;Status StackTraverse(SqStack S,Status (*visit)()while(S.topS.base)visit(-S.top);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报