顺序栈基本运算(实验题3.1)
2013-10-12 00:28
357 查看
// //SqStack.h //顺序栈的基本运算 //2013-10-12 0:06 // #pragma once #define MaxSize 5 typedef int ElemType; typedef struct { ElemType elem[MaxSize]; int top; //栈指针 }SqStack; void InitStack(SqStack* &s); void ClearStack(SqStack* &s); int StackLength(SqStack* s); int StackEmpty(SqStack* s); int Push(SqStack* &s,ElemType e); //进栈 int Pop(SqStack* &s,ElemType& e); //出栈 int GetTop(SqStack* &s,ElemType& e); //取栈顶元素 void DispStack(SqStack* s);
//SqStack.cpp #include "SqStack.h" #include <malloc.h> #include <stdio.h> void InitStack( SqStack* &s ) { s = (SqStack*)malloc(sizeof(SqStack)); s->top = -1; } void ClearStack( SqStack* &s ) { free(s); } int StackLength( SqStack* s ) { return s->top+1; } int StackEmpty( SqStack* s ) { return s->top == -1; } int Push( SqStack* &s,ElemType e ) { if ( s->top >= MaxSize -1) { return 0; } s->top ++; s->elem[s->top] = e; return 1; } int Pop( SqStack* &s,ElemType& e ) { if ( -1 == s->top) { return 0; } s->top--; return 1; } int GetTop( SqStack* &s,ElemType& e ) { if ( s->top == -1 || s->top >= MaxSize) { return 0; } e = s->elem[s->top]; return 1; } void DispStack( SqStack* s ) { if ( s->top == -1 || s->top >= MaxSize) { return; } for ( int i = s->top; i >= 0; i --) { printf("%d,",s->elem[i]); } printf("\n"); }
main.cpp
#include "SqStack.h" int main() { SqStack*s; InitStack(s); Push(s,1); DispStack(s); Push(s,2); DispStack(s); Push(s,3); DispStack(s); Push(s,4); DispStack(s); ElemType e; Pop(s,e); DispStack(s); return 0; }
相关文章推荐
- 实验项目3――基本线性表运算(顺序存储方式)
- 顺序队列基本运算(实验题3.3)
- 3.1实现顺序栈的各种基本运算
- 第三周顺序列表的基本运算
- 第三周,顺序表的基本运算(2)
- 第三周-项目1-顺序表的基本运算
- 第3周项目1(3)- 顺序表的基本运算
- 第三周项目1顺序表的基本运算2
- 第三周项目1-顺序表的基本运算(2)
- 第三周 项目1——顺序表的基本运算
- 第三周项目(1)-顺序表的基本运算
- 第三周项目1-顺序表的基本运算
- 第三周 项目一 顺序表的基本运算
- 第三周项目1 - 顺序表的基本运算
- 第三周 项目一——顺序表的基本运算(2)
- 第三周项目1 顺序表的基本运算
- 顺序栈基本运算的实现 字符型栈
- 第四周项目1-顺序表的基本运算
- 3周项目 顺序表的基本运算
- 顺序栈的各种基本运算