栈的顺序存储及其基本操作
2013-08-14 11:13
357 查看
#include <stdio.h> #include <stdlib.h> #define M 10 typedef struct //定义一个顺序栈 { char data[M]; int top; }SqStack; void InitStack(SqStack &st)//创建一个栈 { st.top=-1; } int PushStack(SqStack &st, char x)//进栈操作 { if(st.top==M-1) return 0; else { st.top++; st.data[st.top]=x; return 1; } } int PopStack(SqStack &st,char &x) //出栈操作 { if(st.top==-1) return 0; else { x=st.data[st.top]; st.top--; return 1; } } int GetTop(SqStack st,char &x) //取栈顶元素 { if(st.top==-1) return 0; else { x=st.data[st.top]; return 1; } } int StackEmpty(SqStack st) //判断栈空 { if(st.top==-1) return 1; else return 0; } int main() { SqStack st; char e; InitStack(st); printf("栈%s\n",(StackEmpty(st)==1?"空":"不空")); printf("a进栈\n");PushStack(st,'a'); printf("b进栈\n");PushStack(st,'b'); printf("c进栈\n");PushStack(st,'c'); printf("d进栈\n");PushStack(st,'d'); printf("栈%s",(StackEmpty(st)==1?"空":"不空")); GetTop(st,e); printf("栈顶元素:%c\n",e); printf("出栈次序:"); while(!StackEmpty(st)) { PopStack(st,e); printf("%c ",e); } printf("\n"); return 0; }输入元素后输出
相关文章推荐
- 队列的顺序存储及其基本操作
- 队列的顺序存储及其基本操作
- 栈的顺序存储及其基本操作
- 线性表之顺序存储,基本操作
- 二叉树的顺序存储和基本操作
- 单链表的存储结构及其基本操作
- 线性表顺序存储基本操作
- 数据结构的串的顺序存储的基本操作(学习历程)
- 栈定义及其基本操作,顺序栈和链栈
- 顺序栈和链式栈的结构及其基本操作(置空,获取栈顶元素,入栈,出栈)
- 二叉树基本操作实现(二叉树的顺序存储)
- 栈的顺序存储基本操作
- 编程菜鸟的日记-初学尝试编程-顺序表的类定义及其基本操作算法(创建表、元素插入、元素删除、顺序查找、测表空、求表长、输出等)
- 顺序存储操作的实现和线性表及其应用
- bo2-1.cpp 顺序表示的线性表(存储结构由c2-1.h定义)的基本操作(12个)
- 数据结构笔记(一)线性表的顺序表示和基本操作及其顺序表实现的集合运算(A-B)U(B-A)实例
- 稀疏矩阵的三元组顺序表存储表示及基本操作
- 队列的顺序存储的基本操作.....
- 二叉树的顺序存储与基本操作
- 线性表顺序存储(数组)及其15种操作的实现