思路:
1、使用鍊錶實現乙個棧,便於擴容(不用考慮陣列擴容場景),維護根節點和最**棧的節點
2、節點中維護pre指標,便於pop()時快速找到上乙個節點
**:
package com.datastructure.stackqueue;
/** * 實現乙個棧,自定義棧,用鍊錶實現,方便擴容
*/public class definestack
@override
public string tostring()
return this.pre.tostring() + " <- " + this.value;
}}
/*** 有前驅指標的節點
* * root <- tail
* root.pre = null
* tail.pre = root
* */
public t push(t t)
nodenode = new node(t);
node.pre = tail;
tail = node;
return t; }
public t pop()
t ret = null;
if (root == tail)
ret = tail.value;
tail = tail.pre;
return ret; }
@override
public string tostring()
public static void main(string args)
}
參考:
棧和佇列的操作:
java 實現乙個棧
package zhangtingting public class stacktest 也可以自己設定長度,即容量 public stacktest int len 返回元素個數 public int size 返回陣列長度,即容量 public int capacity 實現動態的陣列 publ...
自己實現乙個Java框架 一 思路
需要實現兩個功能mvc和ioc容器 下面是springmvc的 controller public class indexcontroller 對於ioc容器則通過 autowire註解 將例項從容器中依賴注入 我們並沒有直接new出乙個controller物件,及其他bean元件 所以contro...
Java實現乙個簡單的棧
棧我們可以理解為乙個箱子,先放進去的東西在最下面,所以是乙個先進後出的原則。下面我們看看乙個簡單的demo。package com.tu.test.stack public class node else else node node current current是我們要出棧的節點 current...