标签:
栈的基本原理是先进后出。既可以用数组实现,也可以用链表实现。先用数组实现。
这是栈的结构定义
typedef struct { char stack[MaxSize]; int top; }Stack;
这里是一些基本操作
void InitStack(Stack *S); //初始化操作,建立一个空栈
int Push(Stack *S,char e); //压栈操作
void Pop(Stack *S,char *e); //出栈操作
void ClearStack(Stack *S); //清空栈
int StackLength(Stack S); //求栈的大小
void GetTop(Stack S,char *); //求栈顶元素
int StackEmpty(Stack S); //判断栈是否为空
下面一一进行实现
// 初始化栈 void InitStack(Stack *S) { S->top=-1; }
//压栈 int Push(Stack *S,char e) { if(S->top==MaxSize-1) { //栈已满,不能继续压入 return 0; } else { S->stack[++S->top]=e; return 1; } }
//出栈操作 void Pop(Stack *S,char *e) { if(S->top==-1) { printf("栈为空!"); } else { *e=S->stack[S->top--]; } }
//清空栈 void ClearStack(Stack *S) { S->top=-1; }
//返回栈中元素个数 int StackLength(Stack S) { return S.top+1; }
//返回栈顶元素 void GetTop(Stack S,char *e) { *e=S.stack[S.top]; }
//判断栈是否为空 int StackEmpty(Stack S) { if(S.top==-1) return 0; else return 1; }
标签:
原文地址:http://www.cnblogs.com/tanxing/p/4598459.html