資料結構之順序棧

2021-06-22 07:02:53 字數 877 閱讀 1316

棧的順序儲存結構用一組位址連續的儲存單元——陣列,依次存放自棧底到棧頂的資料元素。

最簡單的一種棧的寫法如下:

#define maxsize 100

int stack[maxsize];

int top; //棧頂位置

void initstack()

void clearstack()

int gettop(int &e)

int push(int e)

int pop(int &e)

bool stackempty()

棧的經典應用有:進製轉換、括號匹配、迷宮求解、表示式求值等。進製轉換的**如下:

//對於任意乙個非負十進位制數,列印與之相等的任意進製數

void conversion(int e)

int ee;

while(!stackempty())

putchar('\n');

}

ps:c/c++中可直接呼叫下面這個庫函式直接列印進製數:

char *itoa( int value, char *string,int radix);
c++中還可以使用標準庫bitset型別。

完整測試**傳送門:

資料結構之順序棧

前面我們學習了順序鍊錶,我們可能會覺得順序鍊錶有啥用呢?基本都是要被淘汰了用法。呵呵,俗話說 存在的即是合理的。下面我來炫炫它的用法,請睜大你的眼睛,下面是見證奇蹟的時刻。第六個例子,順序棧的實現 標頭檔案要包含兩部分,乙個是我們先前實現的順序表,不清楚,出門右轉,看前面的文章 標頭檔案 ifnde...

資料結構之順序棧

include include include define n 32 typedef struct stack seqstack t 建立堆疊 seqstack t creat empty seqstack 建立乙個空的順序棧 申請記憶體空間 並將棧頂初始化為 1 int stack is emp...

資料結構之順序棧

棧是基本的資料結構之一,利用一維陣列或鍊錶作為儲存結構,實現 入棧 出棧,讀取棧頂元素和判斷棧是否為空等操作。與線性表最大的不同之處是,棧只允許在一端進行插入和刪除操作。順序棧的資料結構很簡單,變數top用來記錄棧頂位置,初始化為 1,陣列data用來儲存資料。templateclass seqst...