데이터 구조 - stack 의 기본 조작

세 개의 파일 포함: stack. h, stack. cpp, main. cpp
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);

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_SIZE;
        return OK;
}
//   
Status IsFull(SqStack &S)
{	//    1,    0
	if((S.top-S.base)>= S.stacksize) //   
	{	//cout< 
  


main.cpp



#include 
#include "stack.h"

using namespace std;


int main()
{
/*
        SqStack sta;
        InitStack(sta);

		cout<>N;
	SqStack sta;
	InitStack(sta);
	while(N!=0)
	{
		Push(sta,N%2);		//  
		N=N/2;				//  
	}
	//StackTraverse(sta);
	cout< 
  





좋은 웹페이지 즐겨찾기