?? stackimplement.cpp
字號:
//
//****************************棧及其操作的實現文件************************
// StackImplement.cpp
// wjluo,2004年3月4日
//********************************************************************
//
#include "StackImplement.h"
#include <malloc.h>
#include <stdlib.h>
//構造一個空棧S
short int InitStack(SqStack &S){
S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType) );
if(!S.base) exit(OVERFLOW);
S.top = S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}//InitSatck
//銷毀棧S
short int DestroyStack(SqStack &S){
free(S.base);
return OK;
}
//清空棧S
short int ClearStack(SqStack &S){
S.top = S.base;
return OK;
}
//若棧S為空,返回True,否則返回False
short int StackEmpty(SqStack S){
if(S.top == S.base ) return true;
return false;
}
//返回棧S中的元素個數
short int StackLength(SqStack S){
int i=S.top-S.base;
return i;
}
//棧不空則返回棧頂元素,否則返回False
short int GetTop(SqStack S, SElemType &e){
if ( S.top == S.base ) return ERROR;
e = *(S.top-1);
return OK;
}//GetTop
//壓棧
short int Push(SqStack &S, SElemType e){
if( S.top-S.base >= S.stacksize ) {//棧滿,追加存儲空間
S.base = (SElemType *) realloc(S.base,
(S.stacksize+STACKINCREMENT)*sizeof(SElemType) );
if(!S.base) exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize=S.stacksize+STACKINCREMENT;
}
*S.top++=e;
return OK;
}//push
//出棧
short int Pop(SqStack &S, SElemType &e){
if(S.top==S.base) return ERROR;
e = *--S.top;
return OK;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -