愿你出走半生,归来仍是少年。
Oct 09, 2018点击
顺序栈
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
#include<stdio.h>#define MAXSIZE 100 //是顺序栈所能存储的最多元素个数#define TRUE 1typedef int datatype;typedef struct//顺序栈的定义 { datatype stack[MAXSIZE]; //stack 数组存储栈中所有的数据元素 int top; } seqstack;//顺序栈的类型定义 seqstack *S;//顺序栈变量定义 //顺序栈的初始化运算 void INITSTACK(seqstack *S) { S->top=-1;//将顺序栈设置为空栈 } //检查顺序栈是否为空栈的运算 int EMPTY(seqstack *S) { if(S->top<0)return (TRUE);//若顺序栈为空,函数返回1 else return (NULL);//若顺序栈不为空,函数返回0 } //向顺序栈中插入元素的运算 seqstack *PUSH(seqstack *S,datatype x) { if(S->top>=MAXSIZE-1)//检查顺序栈是否为满栈 { printf("栈满溢出错误!"); return (NULL); //若为满栈 终止程序 } else { S->top++;//将栈顶指针加1,使之指向新结点 S->stack[S->top]=x; } return (S); } //从顺序栈中删除栈顶元素的运算 datatype POP(seqstack *S) {datatype x; if(S->top<0)//注意是top<0; { printf("栈空出错误!"); return (NULL); } else { x=S->stack[S->top]; S->top--; return (x); } } //顺序栈取栈顶元素的运算 datatype gettop_seqstack(seqstack *S) { if(EMPTY(S)) { printf("栈是空栈!"); return (NULL); } else return(S->stack[S->top]) }
原文作者: 赖卓成原文链接: https://lzcxfz.github.io/2018/10/09/顺序栈/版权声明: 转载请注明出处(必须保留作者署名及链接)
原文作者: 赖卓成
原文链接: https://lzcxfz.github.io/2018/10/09/顺序栈/
版权声明: 转载请注明出处(必须保留作者署名及链接)