資料結構 鏈棧的設計與實現

2021-10-05 02:31:41 字數 1450 閱讀 6909

對於鍊錶來說,同樣要遵循先進後出(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時,則表示該棧是乙個空的...