08_stack
This commit is contained in:
parent
704a1afef9
commit
62636dccff
54
java/08_stack/StackBasedLinkedList.java
Normal file
54
java/08_stack/StackBasedLinkedList.java
Normal file
@ -0,0 +1,54 @@
|
||||
package stack;
|
||||
|
||||
/**
|
||||
* 基于链表实现的栈。
|
||||
*
|
||||
* Author: Zheng
|
||||
*/
|
||||
public class StackBasedLinkedList {
|
||||
private Node top = null;
|
||||
|
||||
public void push(int value) {
|
||||
Node newNode = new Node(value, null);
|
||||
// 判断是否栈空
|
||||
if (top == null) {
|
||||
top = newNode;
|
||||
} else {
|
||||
newNode.next = top;
|
||||
top = newNode;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 我用-1表示栈中没有数据。
|
||||
*/
|
||||
public int pop() {
|
||||
if (top == null) return -1;
|
||||
int value = top.data;
|
||||
top = top.next;
|
||||
return value;
|
||||
}
|
||||
|
||||
public void printAll() {
|
||||
Node p = top;
|
||||
while (p != null) {
|
||||
System.out.print(p.data + " ");
|
||||
p = p.next;
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
private static class Node {
|
||||
private int data;
|
||||
private Node next;
|
||||
|
||||
public Node(int data, Node next) {
|
||||
this.data = data;
|
||||
this.next = next;
|
||||
}
|
||||
|
||||
public int getData() {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user