欢迎来到天天文库
浏览记录
ID:18435191
大小:76.50 KB
页数:11页
时间:2018-09-17
《数据结构教程 第十七课 实验三:栈的表示与实现及栈的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、► 数据结构教程 第十七课 实验三:栈的表示与实现及栈的应用数据结构教程 第十七课 实验三:栈的表示与实现及栈的应用教学目的:掌握栈的存储表示方式和栈基本操作的实现方法教学重点:栈的基本操作实现方法,栈的应用教学难点:栈的存储表示实验内容:一、栈的实现实现栈的顺序存储。栈实现示例#include#include#include#defineERROR0#defineTRUE1#defineFALSE0#defineOK1#defineEQUAL1#def
2、ineOVERFLOW-1#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedefintStatus;structSTU{charname[20];charstuno[10];intage;intscore;};typedefstructSTUSElemType;structSTACK{SElemType*base;SElemType*top;intstacksize;};typedefstructSTACKSqStack;typedefstructSTAC
3、K*pSqstack;StatusInitStack(SqStack**S);StatusDestroyStack(SqStack*S);StatusClearStack(SqStack*S);StatusStackEmpty(SqStackS);intStackLength(SqStackS);StatusGetTop(SqStackS,SElemType*e);StatusPush(SqStack*S,SElemTypee);StatusPop(SqStack*S,SElemType*e);StatusSt
4、ackTraverse(SqStackS,Status(*visit)());StatusInitStack(SqStack**S){(*S)=(SqStack*)malloc(sizeof(SqStack));(*S)->base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!(*S)->base)exit(OVERFLOW);(*S)->top=(*S)->base;(*S)->stacksize=STACK_INIT_SIZE;retu
5、rnOK;}StatusDestroyStack(SqStack*S){free(S->base);free(S);}StatusClearStack(SqStack*S){S->top=S->base;}StatusStackEmpty(SqStackS){if(S.top==S.base)returnTRUE;elsereturnFALSE;}intStackLength(SqStackS){inti;SElemType*p;i=0;p=S.top;while(p!=S.base){p++;i++;}}St
6、atusGetTop(SqStackS,SElemType*e){if(S.top==S.base)returnERROR;*e=*(S.top-1);returnOK;}StatusPush(SqStack*S,SElemTypee){/*if(S->top-S->base>=S->stacksize){S->base=(SElemType*)realloc(S->base,(S->stacksize+STACKINCREMENT)*sizeof(SElemType));if(!S->base)exit(OV
7、ERFLOW);S->top=S->base+S->stacksize;S->stacksize+=STACKINCREMENT;}*/*(S->top++)=e;returnOK;}StatusPop(SqStack*S,SElemType*e){if(S->top==S->base)returnERROR;*e=*--S->top;returnOK;}StatusStackPrintElem(SElemType*e){printf("%s%s%d%d",e->name,e->stuno,e->age,e
8、->score);}StatusStackTraverse(SqStackS,Status(*visit)()){while(S.top!=S.base)visit(--S.top);}main(){SElemTypee;SqStack*Sa;clrscr();printf("-------------------SqStackDemoisrunning...---------
此文档下载收益归作者所有