LinKList链式结构

LinKList链式结构
  1. 创建节点类Node;元素地址,添加中间存储值obj
        package com.LinkList;

        public class Node {
            private Node firstpro;
            private Node lastpro;
            private Object pro;

            public Object getPro() {
                return pro;
            }

            public void setPro(Object pro) {
                this.pro = pro;
            }

            public Node getFirstpro() {
                return firstpro;
            }

            public void setFirstpro(Node firstpro) {
                this.firstpro = firstpro;
            }

            public Node getLastpro() {
                return lastpro;
            }

            public void setLastpro(Node lastpro) {
                this.lastpro = lastpro;
            }



            @Override
            public String toString() {
                return "Node{" +
                        "firstpro=" + firstpro +
                        ", lastpro=" + lastpro +
                        ", pro=" + pro +
                        '}';
            }
        }

  1. 创建节点'实现节点存储,读取'
        package com.LinkList;

        public class LineListDemo {
            Node Firspro;
            Node Lastpro;
            int count = 0;
            //做一个空构造器
            public LineListDemo() {
            }
            //写一个add的添加元素到链中的方法
            public void add(Object obj){
                if(Firspro == null){
                    //对每个链创建为对象这是是上面创建的元素地址LinkList
                    Node node =new Node();
                    //只有一个节点的时后前后都为空
                    node.setFirstpro(null);
                    node.setLastpro(null);
                    //中间值为传入值
                    node.setPro(obj);
                    Firspro =node;
                    Lastpro =node;
                }else {
                    //将链封装成对象
                    Node node1 =new Node();
                    // 链中的第一个元素指向上一级的最后一个地址Lastpro
                    node1.setFirstpro(Lastpro);
                    //链中的最后一个元素值依旧为空
                    node1.setLastpro(null);
                    //中间值依旧为传入值
                    node1.setPro(obj);
                    //需要将当前链中的最后一个元素地址指向node1
                    Lastpro =node1;
                }
                //对链进行计数
                count++;
            }
            public int EleCount(){
                return count;
            }
            public Object getNext(int index){
                //获取列表头元素
                Node n = Firspro;
                for (int i =0;i<=index;i++){
                    //让未节点是下一个节点元素
                    Node lastpro = n.getLastpro();
                }
                //返回此节点的中间元素值
                return n.getPro();
            }
        }
        class DemoImager{
            public static void main(String[] args) {
                //将LineListDemo封装成对象
                LineListDemo LLDemo = new LineListDemo();
                //调用方法add将元素添加到链中
                LLDemo.add(265);
                LLDemo.add(263);
                LLDemo.add(264);
                System.out.println(LLDemo.EleCount());
                System.out.println(LLDemo.getNext(2));
            }
        }

posted @ 2022-04-14 09:07  爱豆技术部  阅读(23)  评论(0编辑  收藏  举报
TOP