zoukankan      html  css  js  c++  java
  • 【数据结构】Java实现单链表

    单链表的数据结构相对构建比较简单

    package DataStructure;
    
    class Node{
    
        public int data;
        public Node next;
    
        Node(int data){
            this.data=data;
        }
    
        public void display(){
            System.out.print(" "+data);
        }
    
    }
    
    public class LinkList {
    
        Node head;
        int  length;
    
        public static void main(String[] args){
    
                LinkList linkList = new LinkList();
                linkList.addFirstNode(1);
                linkList.addFirstNode(12);
                linkList.addFirstNode(13);
                linkList.add(14,1);
                linkList.deleteIndex(2);
                System.out.println("链表长度为:"+linkList.ListLength());
                System.out.print("打印聊表内容:");
                linkList.displayAllNodes();
    
        }
    
        //新建一张链表
        public void LinkList(){
            head = null;
            length =0;
        }
    
        //插入头结点
        public void addFirstNode(int data){
            Node node = new Node(data);
            node.next = head;
            head = node;
            length++;
        }
    
        public void add(int data, int n){
            Node node = new Node(data);
            Node p = head;
            Node q = head;
            int  i = 0;
            if(n>length||n<0){
                System.out.println("插入的位置有误");
                return;
            }
            while(i!=n){
                q = p;
                p = p.next;
                i++;
            }
            node.next = p;
            q.next = node;
            length++;
    
        }
    
        public Node delete(int data){
            if(head==null){
                System.out.println("Linklist is null");
            }
            Node p = head;
            Node q = head;
            while(p.data!=data){
                if(q==null){
                    System.out.println("该表中无此元素");
                    return null;
                }
                q = p;
                p=p.next;
            }
            q.next = p.next;
            return p;
        }
    
        public Node deleteIndex(int index){
            if(head==null){
                System.out.println("Linklist is null");
            }
            Node p = head;
            Node q = head;
            int i=0;
            while(i!=index){
                q = p;
                p=p.next;
                i++;
            }
            q.next = p.next;
            return p;
        }
    
        public int ListLength(){
            return length;
        }
    
        public void displayAllNodes() {
            Node p = head;
            while (p != null) {
                p.display();
                p = p.next;
            }
            System.out.println();
        }
    }

    程序运行结果:
    程序运行结果:

  • 相关阅读:
    下载windows原装镜像的官方网站
    Typora快捷键
    UOS使用ZSH终端教程
    UOS每日折腾、调教、美化
    AMD64和X86_64
    CPU架构
    23种设计模式---单例设计模式(精华)
    java学习day32-Servlet上下文--ServletContext
    java学习day32-Servlet过滤器-Filter
    java学习day32-JSP标签技术-JSTL标签库
  • 原文地址:https://www.cnblogs.com/yankang/p/6399036.html
Copyright © 2011-2022 走看看