鏈棧顧名思義就是用把鍊錶改造一下,用於實現棧。
棧的核心要點:
1.怎麼實現棧先進先出的特性?
這個特性用單鏈表來實現,那就只在單鏈表的一端插入或刪除單元即可。比如把尾節點當作棧底,往尾節點前面插入或者刪除元素。
2.怎麼體現壓棧操作?
需要儲存資料的時候,建立新單元儲存這個資料並鏈結到已建立的鍊錶上。
3.怎麼體現出棧操作?
訪問棧頂單元,取出資料以後,銷毀該單元,即完成出棧操作
**:
#include
#include
typedef
struct stack_listnode;
intpush_stack
(node *tail,
int data_1)
;int
pop_stack
(node *tail)
;int
destroy_whole_stack
(node *tail)
;int
main()
tail->next=tail;
/******************************以上是對棧函式的準備,以下是使用棧*****************************/
for(
int i=
1;i<=
5;i++
)for
(int i=
1;i<=
2;i++)}
intpush_stack
(node *tail,
int data_1)
s->data = data_1;
//鍊錶壓棧是使用才建立單元,不使用不建立單元。
s->next = tail->next;
//壓棧原理:將資料存入data域中,建立新的節點後,將它連線到最新的s節點前,尾節點永遠
tail->next = s;
//存放著最新的s位址,s->next = tail->next 相當於指向最新的s單元位址
}int
pop_stack
(node *tail)
intdestroy_whole_stack
(node *tail)
free
(tail);if
(tail ==
null
)printf
("棧被完全刪除");
}
C語言 資料結構 鏈棧 鏈棧及其進棧 出棧
鏈棧 用單鏈表 帶頭結點 實現 鏈棧的進棧,相當於對單鏈表實施頭插法的插入 鏈棧的刪除,相當於對單鏈表的從頭的刪除.你懂我意思嗎?鏈式棧是一種資料儲存結構,可以通過單鏈表的方式來實現,使用鏈式棧的優點在於它能夠克服用陣列實現的順序棧空間利用率不高的特點,但是需要為每個棧元素分配額外的指標空間用來存放...
資料結構之棧及其基本操作
棧的順序儲存表示 include include include using namespace std define stack int size 100 define stackincrement 10 typedef struct sqstack 構造乙個空棧 在定義了棧的基本結構後,按照設定...
資料結構 棧 鏈棧
棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的特點 先進後出 棧函式實現 1...