Java 使用数组实现链表

Java 使用数组实现链表,java,algorithm,Java,Algorithm,我试图用java实现一个链表,使用数组作为底层结构。但是,我不知道如何在数组中的元素之后插入一个元素,并将数组下移一位 class linkedList{ char data[]; int next; //constructor public linkedList(int MAX){ data = new char[MAX]; } public void insertFirst(char d){ if(da

我试图用java实现一个链表,使用数组作为底层结构。但是,我不知道如何在数组中的元素之后插入一个元素,并将数组下移一位

    class linkedList{
    char data[];
    int next;
    //constructor
    public linkedList(int MAX){
        data = new char[MAX];
    }

    public void insertFirst(char d){
        if(data[next]==0){
        data[next] = d;
        next++;
        }
        else{
            System.out.println("list is full");
        }
    }




    public void insertAfter (char after ,char value){
        next=0;
        while(data[next] !=after){
            next++;
        }
        char temp = data[next+1];
        data[next+1] = value;

    }

    public void printList(){
        for(int i=0;i<data.length;i++){
            System.out.print(data[i]);
        }
    }
}





public class myLinkedList {

    public static void main(String args[]) {
        linkedList list = new linkedList(9);
        list.insertFirst('T');
        list.insertFirst('H');
        list.insertFirst('L');
        list.insertAfter('H', 'z');
        list.printList();
    }

}
类链接列表{
字符数据[];
int-next;
//建造师
公共链接列表(int MAX){
数据=新字符[MAX];
}
公共void insertFirst(字符d){
如果(数据[下一步]==0){
数据[下一步]=d;
next++;
}
否则{
System.out.println(“列表已满”);
}
}
public void insertAfter(char-after,char-value){
next=0;
while(数据[下一步]!=之后){
next++;
}
字符温度=数据[下一步+1];
数据[下一步+1]=值;
}
公共作废打印列表(){

对于(int i=0;i这不是一个链表。您拥有的与ArrayList类似,因为数组被用作基础数据结构。链表由一系列节点组成,每个节点都链接到下一个节点。链表通过调用类似node.next()的东西来遍历在当前节点上,直到到达目标或列表末尾


如果要在达到大小限制后将另一个元素插入列表结构,则需要创建一个新数组,复制旧数组的内容,然后将新元素插入数组。可以使用来执行复制或移动数组中的项目。

是否确实要创建链表?为什么不使用ArrayList?这是一个赋值你想看看insertAt()如何方法会起作用吗?你的作业对我来说没有意义——你确定你在正确地阅读或解释它吗?链表不应该是基于数组的,因为它似乎违背了首先使用链表的目的。一个自制的ArrayList,很好,但不是链表。下面是编写Java类myLin的说明kedList使用数组作为基础结构来模拟单链接列表。包括以下方法:1.在链接列表中插入元素。(这也适用于列表的前部和后部)2.从链接列表中删除元素3.显示(打印)按顺序排列链表的元素。4.检查列表是否为“空”的方法如何使用数组创建链表?使用两个数组,一个用于下一个[]元素,另一个用于数据[],您应该创建一个包含数据[]的节点类数组和对下一个节点的引用。通过遍历列表并在新节点旁边设置最后一个来添加新节点,或者将新节点的下一个字段设置为当前头,将头设置为新节点。在这种情况下,数据[]数组仅用于存储节点内的数据,而不是节点本身。因此每个数组仅包含一个元素?请查看链接列表中的这篇文章: