zoukankan      html  css  js  c++  java
  • Java用链表实现堆栈

    定义

    一种线性的存储结构,实现先进后出的原则,用链表实现的时候只能从头节点开始才能实现完整的铺上,pop,peap的完整操作,不同于数组的实现,链表不需要判断栈不否满了,只需要判断是否为空。

    入栈:在头指针后面插入数据;

    出栈:把头指针后一位的数据输出;

    链表的定义

    package com.jiedada.jiegou;
    
    public class Node1 {
        private Object data;
        private Node1 next;
        public Node1() {
            this.data=null;
            this.next=null;
        }
        public Node1(Object data) {
            this.data=data;
            this.next=null;
        }
        public Object getData() {
            return data;
        }
        public void setData(Object data) {
            this.data = data;
        }
        public Node1 getNext() {
            return next;
        }
        public void setNext(Node1 next) {
            this.next = next;
        }
        
    
    }
    View Code

    链表的实现方法

    package com.jiedada.jiegou;
    
    public class Link {
        Node1 head=null;
        public Link() {
            head=new Node1();
        }
         //入栈
        public void push(Object obj) {
            Node1 node=new Node1(obj);
            //把node和head连接
            node.setNext(head.getNext());
            //把node变成head的位置
            head.setNext(node);
        }
        //是否为空
        public boolean isEempty() {
            return (head.getNext()==null);
        }
        //出栈
        public Object pop() {
            Object item=null;
            if(isEempty()) {
                System.out.println("该栈为空");
                //return item;
            }
             item=head.getNext().getData();
            head.setNext(head.getNext().getNext());
            return item;
        }
        //堆栈大小
        public int size() {
            int len = 0;
            Node1 pNode = head;
            while (pNode.getNext() != null) {
                len++;
                pNode = pNode.getNext();
    
            }
            return len;
        }
        //读取堆栈元素
        public Object peak() {
            Object item=null;
            if(isEempty()) {
                System.out.println("该栈为空");
                return item;
            }
            item=head.getNext().getData();
            return item;
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Link link=new Link();
            link.push("第一个");
            link.push("第二个");
            link.push("第三个");
            link.push("第四个");
            System.out.println(link.isEempty());
            System.out.println(link.size());
            System.out.println(link.pop());
            System.out.println(link.peak());
            System.out.println(link.size());
    
        }
    
    }
    View Code

    代码连接为:https://www.cnblogs.com/neuhao/p/6497000.html

  • 相关阅读:
    Algorithm Gossip (48) 上三角、下三角、对称矩阵
    .Algorithm Gossip (47) 多维矩阵转一维矩阵
    Algorithm Gossip (46) 稀疏矩阵存储
    Algorithm Gossip (45) 费氏搜寻法
    Algorithm Gossip (44) 插补搜寻法
    Algorithm Gossip (43) 二分搜寻法
    Algorithm Gossip (42) 循序搜寻法(使用卫兵)
    Algorithm Gossip (41) 基数排序法
    Algorithm Gossip (40) 合并排序法
    AlgorithmGossip (39) 快速排序法 ( 三 )
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/10818978.html
Copyright © 2011-2022 走看看