Java栈的简单实现

java

 * 数据结构与算法Java实现 栈

*

* @author 小明

*

*/

public class MyStack {

private Node top;// 头指针

int size;// 长度

public MyStack() {

top = null;

size = 0;

}

// 进栈函数

public void push(Node node) {

if (size == 0) {// 栈为空时

top = node;

size++;

} else {// 栈不为空时

node.setNext(top);

top=node;

size++;

}

}

//出栈函数

public void pop() throws IndexException {

if(size==0) {

throw new IndexException("索引错误!");

}else {

top=top.getNext();//出栈

size--;

}

}

@Override

public String toString() {

String str=" ";

Node temp=top;

while(temp!=null){

str+=temp.getElement()+" ";

temp=temp.getNext();

}

str="["+str+" ]";

return str;

}

public static void main(String[] args) throws IndexException {

MyStack mystack=new MyStack();

mystack.push(new Node(0));

mystack.push(new Node(1));

mystack.push(new Node(2));

mystack.pop();

mystack.push(new Node(3));

System.out.println(mystack);

}

}

class Node<T> {

private T element;// 元素

private Node next;// 后继

public Node(T element) {// 初始化函数

this.element = element;

this.next = null;

}

public void setNext(Node node) {

this.next = node;

}

public Node getNext() {

return next;

}

public T getElement() {

return element;

}

}

/*

* 索引异常类

*/

class IndexException extends Exception {

public IndexException() {

}

public IndexException(String s) {

super(s);

}

}

以上是 Java栈的简单实现 的全部内容, 来源链接: utcz.com/z/390673.html

回到顶部