正在加载图片...
★功能:初始化栈 索六输入:栈对象S的指针 ★输出:成功时返回OK int InitStack(SqStack *S) S->base=( Elem Type*) malloc( STACK_INIT_SIZE* sizeof( Elem Type);/*分配初始空间*/ if (!S->base) exit(OVERFLOW) /*设置初始状态*/ S-> stacksize= STACK_ INIT SIZE;/*设置最大容量* return 功能:进栈操作 输入:栈对象S的指针,数据元素e 输出:成功时返回OK 本本亲本*亲本客*率**亲幸举率幸*本率***/ int Push(SqStack *S, ElemType e) if(S->top=S-> stacksize-1)/*栈溢出* /*扩充最大容量* ElemType *newbase newbase=(Elem Type *)realloc(S-base (S->stacksize+STACK INCREMENT)*sizeof(ElemType)) if (newbase==NULL) exit (OVERFLOW) S->base=newbase /*栈区指针指向新区域 S-> stacksize+= STACKINCREMENT;/*修改最大容量* S->top++ /*栈顶加1*/ S->base[S->top]=e;/*新元素进栈*/ return oK /****幸率***幸春本*幸幸率春*幸**幸*率春**率本李春本**幸率李幸* 功能:退栈操作 六输入:栈对象S的指针 输出:成功时返回OK、通过数据元素指针e返回栈顶元素的值* 空栈时返回 ERROR 水客*客水*客水称水幸客 int Pop (sqstack *S, Elem Type e) if( StackEmpty(*S) return ERROR;/*空栈,失败返回* *e=S->base[S-top]:/取栈顶元素*/ S->top=S->top-1;/*栈顶减1*/** 功能:初始化栈 ** ** 输入:栈对象 S 的指针 ** ** 输出: 成功时返回 OK ** **********************************************************/ int InitStack(SqStack *S) { S->base=(ElemType *) malloc(STACK_INIT_SIZE*sizeof(ElemType)); /*分配初始空间*/ if (!S->base) exit(OVERFLOW); S->top=-1; /*设置初始状态*/ S->stacksize=STACK_INIT_SIZE; /*设置最大容量*/ return OK; } /********************************************************** ** 功能:进栈操作 ** ** 输入:栈对象 S 的指针,数据元素 e ** ** 输出: 成功时返回 OK ** **********************************************************/ int Push(SqStack *S,ElemType e) { int j; if (S->top==S->stacksize-1) /*栈溢出*/ { /*扩充最大容量*/ ElemType *newbase; newbase=(ElemType *) realloc(S->base, (S->stacksize+STACKINCREMENT)*sizeof(ElemType)); if (newbase==NULL) exit(OVERFLOW); S->base=newbase; /*栈区指针指向新区域*/ S->stacksize+=STACKINCREMENT; /*修改最大容量*/ } S->top++; /*栈顶加1*/ S->base[S->top]=e; /*新元素进栈*/ return OK; } /******************************************************************* ** 功能:退栈操作 ** ** 输入:栈对象 S 的指针 ** ** 输出: 成功时返回 OK、通过数据元素指针 e 返回栈顶元素的值 ** ** 空栈时返回ERROR ** *******************************************************************/ int Pop(SqStack *S,ElemType *e) { if(StackEmpty(*S)) return ERROR; /*空栈,失败返回 */ *e=S->base[S->top];/*取栈顶元素*/ S->top=S->top-1; /*栈顶减1*/
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有