m0_62430883 2021-10-06 10:33 采纳率: 100%
浏览 40
已结题

Java数据结构实现单链表

用java语言实现单链表并完成如下操作:

/*1.建立具有5个元素的单链表,5个元素的值自己指定*/

 /*2.输出当前单链表*/

/*3.在第4个位置插入值为15的元素*/

 /*4.输出插入后的单链表*/

 /*5.输出单链表的长度*/

/*6.从键盘读入一个值,在单链表中查找该值并将结果输出*/

/*7.从键盘读入一个值i,在单链表中查找第i个元素并将结果输出*/  

/8.从键盘读入一个值i,删除单链表中第i个元素/

/*9.输出删除后的单链表*/
  • 写回答

1条回答 默认 最新

  • 关注
    
    public class Node {
    
        String name;
        //自引用,下一个节点的地址
        Node next;
        public Node() {
            
        }
        public Node(String name) {
            this.name = name;
            next = null;
        }
    }
    
    //链表
    public class Link {
    
        //定义头节点
        Node head;
        //初始化
        public Link() {
            //建表
            head = new Node();
            head.next = null;
        }
        //新增节点
        public void addNode(String data){
            /*1.获取表头
             *2.通过表头找到最后一个元素;
             *3.把新增的节点放到最后一个元素的后面
             * */
            Node p = head;
            while(p.next!=null){
                p=p.next;
            }
            //需要新增的节点
            Node temp = new Node(data);
            p.next = temp;
        }
        //删除节点
        public void delNode(String data){
            /*1.获取表头
             *2.通过表头找到最后一个元素;
             *3.把最后一个元素删除
             * */
            Node p = head;
            while(p.next!=null){
                //删除节点
                if(p.next.name.equals(data)){
                    p.next = p.next.next;
                    break;
                }else{
                    p=p.next;
                }
                
            }
        }
        //遍历
        public void display(){
            Node p = head;
            while(p.next!=null){
                System.out.println(p.next.name+"->>");
                p=p.next;
            }
        }
        //查找
        public void findNode(String data){
            /*1.获取表头
             *2.通过表头找到最后一个元素;
             *3.把最后一个元素删除
             * */
            Node p = head;
            while(p.next!=null){
                //删除节点
                if(p.next.name.equals(data)){
                    System.out.println("data="+p.next.name);
                    break;
                }else{
                    p=p.next;
                }
                
            }
        }
        //插入节点
        public void insertNode(String param,String data){
            
            /*param表示新增的节点要插入到该节点的后面
             * 
             *1.获取表头
             *2.通过表头找到param元素的节点;
             *3.把新增的节点放到改节点的后面
             * */
            Node p = head;
            while(p.next!=null){
                if(p.next.name.equals(param)){
                    Node t = p.next;
                    Node insertNode = new Node(data);
                    
                    insertNode.next = t.next;
                    t.next = insertNode;
                    break;
                }else{
                    p=p.next;
                }
            }
        }
        //链表大小
        public int size(){
            int n=0;
            Node p = head;
            while(p.next!=null){
                p=p.next;
                n++;
            }
            return n;
        }
        public static void main(String[] args) {
            Link link = new Link();
            link.addNode("组长");
            link.addNode("部门经理");
            link.addNode("主管副总");
            link.addNode("总经理");
            link.display();
            System.out.println("size="+link.size());
            link.delNode("部门经理");
            link.display();
            System.out.println("---------------------------");
            link.insertNode("组长", "部门经理");
            link.display();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月6日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来