#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的次序進棧,退棧的第乙個元素應是棧頂元素。換句話說,棧的修改是按後進先出的原...