java 链表实现堆栈_《Java数据结构与算法》笔记-CH5-链表-4用链表实现堆栈
//用鏈表實(shí)現(xiàn)堆棧
/**
* 節(jié)點(diǎn)類
*/
class LinkS {
private long data;
public LinkS next;
public LinkS(long d) {
this.data = d;
}
public String toString() {
return String.valueOf(data);
}
}
/**
* 鏈表類
*/
class LinkSList {
private LinkS first;
public LinkSList() {
first = null;
}
public void insertFirst(LinkS node) {
node.next = first;
first = node;
}
public LinkS deleteFirst() {
LinkS temp = first;
first = first.next;
return temp;
}
public boolean isEmpty() {
return first == null;
}
public String toString() {
if (isEmpty())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append("[");
LinkS curr = first;
while (curr != null) {
sb.append(curr.toString()).append(",");
curr = curr.next;
}
sb.deleteCharAt(sb.length() - 1);
sb.append("]");
return sb.toString();
}
}
/**
* 棧
*/
class LinkStack {
private LinkSList linkList;
public LinkStack() {
this.linkList = new LinkSList();
}
public void push(LinkS l) {
this.linkList.insertFirst(l);
}
public LinkS pop() {
return this.linkList.deleteFirst();
}
public boolean isEmpty() {
return this.linkList.isEmpty();
}
public String toString() {
return this.linkList.toString();
}
public void display() {
System.out.println(toString());
}
}
public class LinkStackDemo {
public static void main(String[] args) {
LinkStack stack = new LinkStack();
for (int i = 0; i < 5; i++) {
LinkS l = new LinkS(i);
stack.push(l);
stack.display();
}
while (!stack.isEmpty()) {
System.out.print("pop出" + stack.pop());
System.out.print("現(xiàn)在棧為:");
stack.display();
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java 链表实现堆栈_《Java数据结构与算法》笔记-CH5-链表-4用链表实现堆栈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农业银行信用卡临时额度有效期多久?逾期怎
- 下一篇: java美元兑换,(Java实现) 美元