m0_64087086 2022-11-25 08:38 采纳率: 100%
浏览 7
已结题

Java链表,运行结果不正确,看看哪里错了

是我的类写错了,还是主函数写错,怎么一直运行不正确??
插不进值
主函数

import java.io.IOException;
import java.util.Scanner;
public class test {
    public static void main(String[] args) throws IOException {
        System.out.println("请输入链表长度n:");
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        Scanner li = new Scanner(System.in);
        int[] b = new int[n];
        for (int i = 0; i < b.length; i++) {
            b[i] = li.nextInt();
        }
        LinkListClass p = new LinkListClass();
        p.CreatList(b);
        System.out.println(p.toString());
        
        System.out.println("请输入要插入的序号及元素");
        int i = scanner.nextInt();
        int e = scanner.nextInt();
        p.insert(i, e);
        System.out.println(p.toString());
    }
}

节点类

public class LinkNode {
    int data;
    LinkNode next;
    public LinkNode() {
        next=null;
    }
    public LinkNode(int d) {
        data =d;
        next=null;
    }
}
 

LinkListClass

public class LinkListClass {
        LinkNode head;
        public LinkListClass() {
            head=new LinkNode();
            head.next=null;
        }
        public void CreatList(int[] b) {
            LinkNode s ;
            for(int i=0;i<b.length;i++)
            {
                s=new LinkNode(b[i]);
                s.next=head.next;
                head.next=s;
            }    
        }    
    public String toString() {
            String anString="";
            LinkNode p=head.next;
            while (p!=null) {
                anString+=p.data+"";
                p=p.next;
            }
            return anString;
        }
        //第二题
    public int size() {
            LinkNode p=head;
            int cnt=0;
            while (p.next!=null) {
                cnt++;
                p.next=p;
            }
            return cnt;
        }
    public LinkNode geti(int i) {
            LinkNode p=head;
            int j=-1;
            while (j<1) {
                j++;
                p=p.next;
            }
            return p;
        }
    public void insert(int i,int e) {
            if(i<0||i>size())
                throw new IllegalArgumentException("设置长度n:不再有效的范围内");
        LinkNode sLinkList=new LinkNode(e);
        LinkNode pLinkList=geti(i-1);
        sLinkList.next=pLinkList.next;
        pLinkList.next=sLinkList;
        }

}
 

img

  • 写回答

3条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 已结题 11月25日
      • 已采纳回答 11月25日
      • 修改了问题 11月25日
      • 修改了问题 11月25日
      • 展开全部

      悬赏问题

      • ¥15 房号如何排序,sql或算法
      • ¥15 macOS使用IDEA 2022.2.4打包JDK6项目报错
      • ¥20 OpenCV-Python简单轮廓寻找
      • ¥20 使用matlab进行含参数的最优化求解及数值模拟
      • ¥20 MATLAB找出一维变量中的局部极大值和局部极小值,并进行运算
      • ¥15 有Chang求三维杆单元几何非线性分析matlab代码
      • ¥50 使用unity easyar录屏功能。录屏视频整体色调很暗
      • ¥50 pyinstaller 打包问题
      • ¥15 无法使用cnssc调取网页数据
      • ¥15 Pycharm安装en_core_web_sm失败出现Could not find a version that satisfies the requirement spacy报错