用节点实现一个栈结构(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;}}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部