正在加载图片...
Intj; f(S->top== maxing)/*栈溢出* printf("OVERFLOW") return ERROR: S->top++, 栈顶加1*/ S-elem[S->topl=e,/*新元素进栈*/ return O 功能:退栈操作 输入:栈对象S的指针 输出:成功时返回OK、通过数据元素指针e返回栈顶元素的值* 空栈时返回 ERROR 幸本幸*李**举本率***亲率本幸***家春家春***亲幸本本幸**家举幸本**亲*幸本幸****/ int Pop(Sqstack*S, Elem Type 'e) if( StackEmpty(*S) return error,倖*空栈失败返回* e=S-elem[S->top]/*取栈顶元素* S->top=S->top-1;/栈顶减1*/ return OF 成功返回* maino int i; Elem Type elem /定义栈对象s* *初始化栈对象s* clrscro for(i=1;<=5,+)/输入5个数据元素并进栈* printf("No%d? " 1) scanf("%d", &elem) Push(&s, elem) } for(i=1;i<=7,i++)/*退栈操作* f(Pop(&s&elem)=OK)/*正确退栈时,可通过elem输出数据元素* printf("No%d=%d ",i, elem); else*若栈已空,结束,此时elem的值无意义,* i printf("stack has been empty! ") break;int j; if (S->top==maxleng) /*栈溢出*/ { printf("OVERFLOW"); return ERROR; } S->top++; /*栈顶加 1*/ S->elem[S->top]=e; /*新元素进栈*/ return OK; } /******************************************************************* ** 功能:退栈操作 ** ** 输入:栈对象 S 的指针 ** ** 输出: 成功时返回 OK、通过数据元素指针 e 返回栈顶元素的值 ** ** 空栈时返回ERROR ** *******************************************************************/ int Pop(SqStack *S,ElemType *e) { if(StackEmpty(*S)) return ERROR; /*空栈,失败返回 */ *e=S->elem[S->top];/*取栈顶元素*/ S->top=S->top-1; /*栈顶减 1*/ return OK; /*成功返回 */ } main() { int i; ElemType elem; SqStack s; /*定义栈对象 s*/ s.top=0; /*初始化栈对象 s*/ clrscr(); for(i=1;i<=5;i++) /*输入 5 个数据元素并进栈*/ { printf("No%d? ",i); scanf("%d",&elem); Push(&s,elem); }; for(i=1;i<=7;i++) /*退栈操作*/ { if (Pop(&s,&elem)==OK) /*正确退栈时,可通过 elem 输出数据元素*/ printf("No%d=%d ",i,elem); else /*若栈已空,结束,此时 elem 的值无意义,*/ { printf("stack has been empty!"); break;} };
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有