單向鍊錶實現棧

2021-10-24 13:04:53 字數 1611 閱讀 2355

首先我們要知道"棧"為何物 , 他是一種儲存資料的方法 , 有點類似子彈夾 , 擁有先進後出的特點 . 同時進棧與出棧都只能在一端進行.

public

inte***ce

mystack

public

class

node

public object getdate()

public

void

setdate

(object date)

public node getnext()

public

void

setnext

(node next)

}

private node top;

private

int size;

這是乙個新增的方法也叫入棧

public

boolean

pash

(object x)

1,建立乙個node物件newnode用來儲存要插入的元素

2,將top所指向的資料拼接在newnode的後面 , 這樣一來我們就成功的吧新元素newnode給連線進來棧了

3,因為我們新增了新元素進來所以棧頂元素變成了newnode , 但是top每一次都是指向棧頂元素所以我們需要將top的元素更換 , 這時我們的top=newnode就可以滿足 , 將top的元素變為了newnode

4,有效個數size++;

話不多說直接上圖

這是乙個出棧方法

public object pop()

1,因為棧的特性只允許從棧頂出來 , 而且是先進後出 . 所以我們只能從棧頂出棧 , 又因為top指向棧頂元素所以我們就直接通過top.getdate方法獲得棧頂元素的值

2,因為top指向的元素要出棧 , 所以我們需要調整top的指標指向 , 直接將top的下以為賦值給top讓他達到top重指向的效果

3,有效元素個數size–;

public

boolean

isempty()

這個方法沒啥好說的直接讓size和0作比較

public object gettop()

這個方法也沒啥好說的跟pop方法一樣但是不用刪除元素所以直接返回值就好了鍊錶實現棧的操作其實並不難我們如果掌握了鍊錶的只是就能很容易的寫出來 , 如果單向鍊錶不是很熟練的可以看一下這個部落格還很詳細

好說的跟pop方法一樣但是不用刪除元素所以直接返回值就好了**

鍊錶實現棧的操作其實並不難我們如果掌握了鍊錶的只是就能很容易的寫出來 , 如果單向鍊錶不是很熟練的可以看一下這個部落格還很詳細

實現單向鍊錶

鍊錶類 public class link 增加節點 public void add node node else 輸出節點 public void print else 內部搜尋節點的方法 public boolean search string data 直到不存在下乙個節點結束搜尋 if th...

實現單向鍊錶

鍊錶類 public class link 增加節點 public void add node node else 輸出節點 public void print else 內部搜尋節點的方法 public boolean search string data 直到不存在下乙個節點結束搜尋 if th...

線性棧和單向鍊錶的實現

陣列實現 public class stack 自定義線性棧 class mystack 初始化棧建構函式 public mystack int begin 進棧 public void instack int e 元素e進棧,有效長度加1 array size e size 出棧 public i...