對於鍊錶來說,同樣要遵循先進後出(filo),要在乙個方向push,乙個方向pop,因為頭插和頭刪的時間複雜度最好(o(1)),所以結構使用了頭插和頭刪來實現
typedef
int elemtype;
typedef
struct node
node,stack,
*pstack;
void
init
(pstack pst)
;node*
buynode
(elemtype val)
;void
push
(pstack pst, elemtype val)
;int
empty
(pstack pst)
;int
pop(pstack pst)
;int
gettop
(pstack pst, elemtype* prt)
;void
destory
(pstack pst)
;
#include
#include
#include
"stack.h"
void
init
(pstack pst)
}node*
buynode
(elemtype val)
//元素做乙個鍊錶的頭插
void
push
(pstack pst, elemtype val)
intempty
(pstack pst)
//鍊錶的頭刪,相當於出棧
intpop
(pstack pst)
node* pcur = pst->next;
pst->next = pcur->next;
free
(pcur)
;return1;
}int
gettop
(pstack pst, elemtype* prt)
*prt = pst->next->data;
//第乙個資料結點的資料
return1;
}void
destory
(pstack pst)
pst->next =
null
;}
#include
#include
"stack.h"
intmain()
int rt =0;
int flag =
gettop
(&st,
&rt);if
(flag)
return0;
}
資料結構鏈棧實現
如題 這是一套完整的可執行的 需要讀者有一定的基礎去閱讀 語言是用c語言實現 在c 環境中編寫 在c 中可直接執行 在c語言中需要改部分標頭檔案和輸出語句 標頭檔案 這要是 的宣告部分 ifndef head define head include using namespace std typed...
鏈棧的資料結構以及鏈棧的實現
線性表有順序儲存結構和鏈式儲存結構,棧屬於線性表的一種,也具有順序儲存結構和鏈式儲存結構。對於棧的鏈式儲存結構,一般稱之為鏈棧。棧的插入和刪除只在棧頂進行操作,在單鏈表中,頭指標是單鏈表的必須元素 而在棧中,棧頂指標也是鏈棧的必須元素,且一般將棧頂放在單鏈表的頭部。鏈棧的結構 如下所示 定義資料結點...
資料結構(C實現) 鏈棧
鏈棧,即棧的鏈式儲存結構,鏈棧通常使用不帶頭結點的單鏈表來表示,因此其結點的結構和單鏈表的結點結構相同。在乙個鏈棧中,棧底就是鍊錶的最後乙個結點,而棧頂總是鍊錶的第乙個結點。因此,新入棧的元素即為鍊錶中採用頭插法新加入的結點,乙個鏈棧可以由棧頂指標唯一確定,當top為null時,則表示該棧是乙個空的...