繁体   English   中英

使用数组实现链表

[英]implementing linked list using arrays

我正在尝试使用数组作为底层结构在 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();
    }

}

这也会被认为是一个链表吗?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM