C++数据结构-stack基本操作编程练习

 本文测试了栈结构的基本操作,可以作为入门练习。

代码包括三个文件:stack.h,stack.cpp,main.cpp

1. stack.h代码文件

#include "stdio.h"
#include 
#include 
#include 

#define Status int
#define SElemType int
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OVERFLOW 0
#define ERROR 0
#define OK 1
//
typedef struct
{
        SElemType *base;        //指向栈尾
        SElemType *top;         //指向栈顶
        int stacksize;          //记录栈元素个数
}SqStack;
//
//
//栈的基本操作
//
//初始化栈		
Status InitStack(SqStack &S);
	//返回1,表示成功;返回0表示不成功
//判栈满
Status IsFull(SqStack &S);
//判栈空
Status IsEmpty(SqStack &S);
	//如空,返回1;非空返回0
//入栈
Status Push(SqStack &S,SElemType e);

//出栈
Status Pop(SqStack &S,SElemType &e);
//显示栈元素
Status StackTraverse(SqStack &S);
//访问栈顶
Status GetTop(SqStack &S,SElemType &e);
//求栈长度
int StackLength(SqStack &S);

//清空栈
Status ClearStack(SqStack &S);
//销毁栈
Status DestroyStack(SqStack &S);


2. stack.cpp代码文件

#include "stack.h"
#include "stdio.h"
#include 
#include 
#include 
using namespace std;

//栈的基本操作
//
初始化栈
Status InitStack(SqStack &S)
{       //构造一个空栈
        S.base =(SElemType*)malloc(STACK_INIT_SIZE * sizeof(SElemType));
        if(!S.base) return(OVERFLOW);
        S.top=S.base;
        S.stacksize=STACK_INIT_

你可能感兴趣的:(C++,数据结构与算法,栈)