第十七课 实验三(3)
来源:百度文库 编辑:神马文学网 时间:2024/04/28 00:25:08
这里是实现栈的头文件
#include "simuc.h"#define OVERFLOW -1#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;struct STACK{ SElemType *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);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 *)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 TRUE; else return FALSE;}int StackLength(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.top>S.base) visit(--S.top);}
#include "simuc.h"#define OVERFLOW -1#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;struct STACK{ SElemType *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);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 *)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 TRUE; else return FALSE;}int StackLength(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.top>S.base) visit(--S.top);}
第十七课 实验三(3)
第十七课 实验三(2)
第十七课 实验三:栈的表示与实现及栈的应用
化学趣味实验大全(三)3
电教实验报告三
因是子静坐法(三)卫生实验谈
因是子静坐法(三)卫生实验谈
化学趣味实验大全(三)
三、实验操作安全常识
普通高中技术课程标准(实验)3
第十七回 袁公路大起七军 曹孟德会合三将
第三十七课 实验八 排序实验
实验艺术丛书系列介绍(三) – Mtime时光网
浅析北京市各重点中学(三)──北师大实验中学
素质感应五维科教三互优质科技教育教学实验报告(三)
素质感应五维科教?三互优质科技教育教学实验报告(二)
实验三 网络广告形式与策划
电子商务网络营销与策划实验三
实验三 网络广告形式与策划00
第十七堂课---社会的考验
第十七课 20080318-体用及望诊
第十七课 渴望中诞生希望
中国共产党第十七届三中全会公报 全文3
第十七章 厉师兄(1)