我试图使用数组作为底层结构在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();
}
}
这也会被视为链表吗?
答案 0 :(得分:1)
这不是链接列表。你拥有的类似于ArrayList,因为数组被用作底层数据结构。链表由一系列节点组成,每个节点链接到下一个节点。通过在当前节点上调用类似node.next()的内容来遍历链接列表,直到达到目标或列表的末尾。
如果要在达到大小限制后在列表结构中插入另一个元素,则需要创建一个新数组,复制旧数组的内容,然后将新元素插入到数组中。您可以使用System.arraycopy()执行复制或移动数组中的项目。