• 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

  • 相关阅读:
    Android ADB关闭Selinux ( adb shell setenforce 0 )
    通过windowmanager在camera界面上显示内容
    Android Handler类 发送消息-post()和postDelay(), Looper讲解
    Ubuntu下的log日志查看器
    Ubuntu下 安卓 adb 命令报:“insufficient permissions for device: user in plugdev group; ”问题的解决办法
    java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libjni_i
    为 Linux 应用程序编写 DLL
    android Camera 之 ZSL
    Android Studio 导入 Android 系统模块并编译和调试
    微服务架构设计
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/10818978.html
Copyright © 2020-2023  润新知