用节点实现一个栈结构(stack)
前一篇文章用了数组对栈进行了简单地实现,本文拟使用linkedList进行实现。在java的connection中,有一个linkedlist子类,俗称为链表,linkedlist,节点Node在java中是这样定义的:
Private static class Node
{
E item;
Node next;
Node perv;
Node(Node prev, E element, Node next)
{
this.item=element;
this.next=next;
this.prev=prev;
}
}
我们借助Node的构思对栈结构进行实现,栈结构的特点是先进后出,之前用数组对其的5个方法empty()、peek()、pop()、push()、search()。进行了简单的实现,我们使用Node思维进行实现,详细结果如下:
class linkedStack{private int size; //个数private Node first; //定义头结点public void push(String str) {
//产生一个新的节点Node node=new Node(str, null);
//判断栈是否为空
if (size==0) {this.first=node;}else {node.next=this.first; //将头结点作为新结点的下一个this.first=node;//将新结点作为头结点}size++;}public String peek() {return this.first.item;//因为在入栈的时候是倒序放的,故顺序弹栈即可}public String pop() {String str=peek();//获取栈顶位置this.first=this.first.next;//头结点的下一位作为头结点size--;return str;}public boolean empty(String str) {return size==0;}public int search(String str) {Node node=this.first;//初始化,将头结点作为初始位置for (int i = 0; i < size; i++) {if (str==node.item||str!=null&str.equals(node.item)) {return i+1;}}return -1;}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
