棧的順序表示及應用

2021-09-27 03:32:39 字數 1502 閱讀 2303

#include

using namespace std;

#define stack_init_size 100

#define stackincrease 10

#define int int

#define char char

typedef struct

sqstack;

bool initstack(sqstack &s)

bool destroystack(sqstack &s)

s.stacksize = 0;

s.top = s.base = null;

free(s.top);

free(s.base);

return true;

}bool clearstack(sqstack &s)

*p = 0;

s.top = s.base;

s.stacksize = 0;

return true;

}bool stackempty(sqstack s)

int stacklength(sqstack s)

//返回s的元素個數

bool gettop(sqstack s, char &e)

bool push(sqstack &s, char e)

bool pop(sqstack &s, char &e)

bool pop(sqstack &s)

void printstack(sqstack s)

//輸出棧中所有元素

cout << endl;

/------------------------------棧的應用------------------------------/

void conversion8()

//進製轉換,輸入10進製數,輸出對應8進製數

//將所有char改為int

char e;

while (!stackempty(s))

}void matchsymbol()

//括號匹配

//需要把所有int改為char

//只支援輸入(){}

else

case 『)』:

case 『}』:

if (*(s.top - 1) != 『

}cout << "top: " << *(s.top - 1) << endl;

}if (s.tops.base)cout << 「匹配」 << endl;

else cout << 「不匹配」 << endl;

}void lineedit()

//行編輯器,#代表退格,@代表本行@之前所有字元無效

//將int改為char

n = getchar();

}printstack(s);//輸出

clearstack(s);

if (n != eof)n = getchar();}}

int main()

{

順序棧 棧的順序表示和實現

用順序表表示的棧的基本操作 include include define selemtype int define status int define stack init size 100 初始空間分配量 define stackincrement 10 儲存空間分配增量 using namesp...

順序棧的應用

預編譯命令 include include define ok 1 define error 0 define overflow 2 define stack init size 10 順序棧儲存空間的初始分配量 define stackincrement 2 順序棧儲存空間的分配增量 資料結構 t...

棧的順序表示和實現

棧是僅限定在表位進行插入和刪除的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂,相應的表頭端稱為棧底。不含元素的空表稱為空棧。假設棧s a1,a2,an 則稱a1為棧底元素,an為棧頂元素。棧中元素按啊a1,a2,an的次序進棧,退棧的第乙個元素應是棧頂元素。換句話說,棧的修改是按後進先出的原...