棧:和佇列相反的作用,越是先存入的資料就得越到後才能取出,根據這個特性可以用陣列或鍊錶模擬出棧。
陣列模擬棧:新增資料正常順序,每天加乙個數棧頂加一次,彈棧的時候將棧頂指標的數彈出即可,遍歷棧陣列時是從棧頂開始迴圈。
1class
arraystack9//
判斷棧是否已滿
10public
boolean
isfull()
13//
判斷棧是否為空
14public
boolean
isempty()
17//
壓棧18
public
void push(int
num)
24 top++;
25 stack[top] =num;26}
27//
彈棧28
public
intpop()
33int temp =stack[top];
34 top --;
35return
temp;36}
37//
遍歷棧,顯示棧中資料
38public
void
showstack()
43for(int i = top; i >=0; i--)46}
47 }
單向鍊錶模擬棧:使用頭插法來新增資料實現棧,零時變數先指向煉表頭節點後第乙個數,插入的資料先連線頭節點的next,然後再將插入資料的next域指向臨時變數即可。
1class
linkedstack
6/**
7* 壓棧8*/
9public
void
push(stack stack)
16/**
17* 彈棧
18*/
19public
intpop()
23int num =head.getnext().getnum();
24 head =head.getnext();
25return
num;26}
27/**
28* 顯示棧中的資料
29*/
30public
void
show()
35 stack temp =head;
36while (true
) 40 system.out.printf("satck = %d\n", temp.getnext().getnum());
41 temp =temp.getnext();42}
43}44}
4546
class
stack
52public
void
setnext(stack next)
55public
stack getnext()
58public
intgetnum()
61 }
資料結構 線性結構和棧
一種結構化資料集合 也就是有一種關係的資料非線性結構有樹和圖 線性結構就比較多了,線性表,棧與佇列,字串,陣列 線性表就像火車一樣,表頭沒有前驅,表頭就是第乙個,表尾沒有後繼,表尾就是最後乙個,其他元素只有乙個前驅後繼 線性表用指標來實現實參和位址的操作 typedef struct 定義結構體 b...
python資料結構 2 線性資料結構 棧
2.棧的應用 總結在這個系列的第一篇部落格中,我主要強調了程式設計思維的重要性以及如何高效準確的編寫出能解決問題的 這一篇部落格開始就正式開始python資料結構相關的知識。有一種資料結構,它的元素順序取決於新增的順序或者刪除的順序,一旦某個元素被新增進來,它與前後元素的相對位置也就保持不變了,這樣...
資料結構 線性結構 棧 佇列 陣列
棧和佇列是插入 刪除受限制 只能在表的一端插入 刪除,不能從中間插入 刪除 的線性表。它們的儲存結構,以及儲存結構下不同操作的屬性和普通線性表是一樣的。因為受限制,理解起來反而更簡單。棧 lifo last in first out 是後進先出的線性表,採用順序儲存時,稱順序棧 採用鏈式儲存時,稱鏈...