資料結構 鏈棧

2021-09-26 09:27:21 字數 1309 閱讀 7117

這幾天的學習下來,我現在對於**的理解能力有了顯著的提公升,以至於現在在自己**內的註解也越來越少了。今天的鏈棧也是相對比較簡單的,除了結構與鍊錶相同,表示方式與順序棧幾乎並無太大的差別,所以直接將**寫出來了~

#include

/*創立乙個鏈棧結點*/

typedef

struct stacknodestacknode;

/*建立一條鏈棧*/

typedef

struct

linkstack;

void

initstack

(linkstack *s)

/*將鏈棧置空*/

intsetempty

(linkstack *s)

printf

("鏈棧已置空!");

return1;

}/*入棧*/

intpush

(linkstack *s,

int e)

/*出棧*/

intpop

(linkstack *s,

int*e)

s->top = p->next;

*e = p->data;

free

(p);

return1;

}/*棧頂元素*/

intgettop

(linkstack *s,

int*e)

*e = s->top->data;

return1;

}/*顯示棧內元素*/

intdisplay

(linkstack *s)

printf

("\n");

return1;

}int

main()

display

(&s)

;gettop

(&s,

&e);

printf

("棧頂元素為:%d\n"

, e)

;printf

("入棧新元素:");

scanf

("%d"

,&a)

;push

(&s, a)

;display

(&s)

;printf

("出棧元素為:%d\n"

, a)

;pop

(&s,

&e);

display

(&s)

;setempty

(&s)

;return0;

}

資料結構 棧 鏈棧

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

資料結構 鏈棧

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

資料結構 鏈棧

鏈式儲存的棧稱為鏈棧,結構如下圖 鏈棧無滿棧問題,空間可擴充,但有棧空問題,棧空的條件為top next null。進棧與入棧僅在棧頂進行,鏈式棧的棧頂在棧表頭。鏈棧的定義如下 struct stacknode class stack 建立頭結點 stack void push int item 入...