棧的簡單實現

2021-10-01 18:58:32 字數 1775 閱讀 4455

棧的描述:

線性結構,有序列表,先進後出

陣列實現棧:

思路:記錄一下棧頂元素的索引,加入新元素時索引++,索引位置對應的值設為新元素,直到棧滿,取出元素後,索引–,直到小於0,棧空;

/**

* 鍊錶實現棧

*/public class arraystack

/*** 棧滿

** @return

*/public boolean isfull()

/*** 是否為空

** @return

*/public boolean isempty()

/*** 入棧

** @param add

*/public void push(int add)

top++;

arr[top] = add;

}/**

* 出棧

*/public int poll()

int value = arr[top];

top--;

return value;

}/**

* 檢視棧頂

** @return

*/public int peek()

return arr[top];

}public void show()

}public void showarray()

}

單鏈表實現棧:

思路:將新加的節點放在head節點的下乙個位置,取出的時候直接取head節點的下乙個節點,直到鍊錶為空

/**

* 鍊錶實現棧

*/public class linkedstack

/*** 是否為空

** @return

*/public boolean isempty()

/*** 入棧

** @param node

*/public void push(node node)

/*** 出棧

*/public node poll()

node next = head.next;

head.next = next.next;

return next;

}/**

* 檢視棧頂

** @return

*/public node peek()

return head.next;

}public void show()

node next = head.next;

while (next != null)

system.out.println("出棧完畢");

}public void showarray()

node next = head.next;

while (next != null)

system.out.println("遍歷完畢");

}public static class node

public node(string value)

public string getvalue()

public void setvalue(string value)

public node getnext()

public void setnext(node next)

@override

public string tostring() ';}}

}

棧的簡單實現

設棧採用順序儲存結構 用動態陣列 請編寫棧的各種基本操作的實現函式 棧的動態陣列順序儲存結構可定義如下 struct stack 棧的基本操作可包括 void initstack stack s 構造乙個空棧 s int emptystack stack s 若棧s 為空棧返回 1,否則返回0 vo...

棧的簡單實現(順序棧 鏈棧)

include define maxsize 100 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 using namespace std typedef i...

棧的簡單實現(二)

上文棧的簡單實現 一 實現了不能擴充套件棧容量的順序棧結構,這次給棧加上擴容功能,這樣就不用擔心出現滿棧的情況了。不過由於本人技術水平不夠,也還在學習當中,因此只能固定擴大大小,而不是根據實際情況進行最合適的擴大。跟上文 差不多,只是新增了乙個擴容的方法,以及改變了push方法。新增 如下 擴大棧的...