資料結構 鏈棧

2021-07-31 15:21:46 字數 925 閱讀 8902

鏈式儲存的棧稱為鏈棧,結構如下圖:

鏈棧無滿棧問題,空間可擴充,但有棧空問題,棧空的條件為top->next==null。進棧與入棧僅在棧頂進行,鏈式棧的棧頂在棧表頭。鏈棧的定義如下:

struct stacknode ;

class stack

//建立頭結點

~stack()

void push(int item); //入棧

int pop(); //出棧

int gettop(); //獲取棧頂元素

void clear(); //清空棧

bool isempty() //判斷棧是否為空

void transform(long n, int d); //數制轉換

};

類中具體的演算法實現如下:

//入棧操作

void

stack

::push(int item)

//出棧操作

int stack

::pop()

else

}//獲取棧頂元素操作

int stack

::gettop()

else

}void

stack

::clear()

}

棧的應用–數制轉換(十進位制轉d進製):

void stack::transform(long n, int d)

cout

<

while (!s.isempty())

資料結構 棧 鏈棧

棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的特點 先進後出 棧函式實現 1...

資料結構 鏈棧

編寫乙個程式,實現鏈棧 假設棧中元素型別為char 的各種基本運算。並完成下面功能 1 初始化鏈棧s 2 判斷鏈棧s是否非空 3 依次進鏈棧元素a,b,c,d,e 4 判斷鏈棧s是否非空 5 輸出鏈棧長度 6 輸出從棧頂到棧底元素 7 輸出出鏈棧序列 8 判斷鏈棧s是否非空 9 釋放鏈棧。inclu...

資料結構 鏈棧

include include define maxsize 100 typedef struct linkstnode 定義鏈棧結構體 linkstnode void initstack linkstnode s 初始化順序棧 initiate 英 n ie t 開始,創始,開闢 void des...