编写一个算法从数组中链表的头部打印已删除的元素?

时间:2015-01-31 12:14:42

标签: arrays algorithm data-structures arraylist linked-list

首先,这是一项任务。我没有要求任何代码澄清。

我真的不明白这个问题,是否意味着将删除的元素放入数组中并在调用删除head元素的方法时立即打印它,这意味着每次打印1个元素和数组容量总是1?或者你创建一个数组作为类成员,每次删除一个元素,它被放入数组,然后有一个打印数组的方法?如果是这样,你如何处理阵列容量,因为链接列表不是固定大小?

我自己的解决方案是创建一个静态arraylist并且每次调用deleteFirst()方法时,节点内的数据都放在arraylist中然后我只有一个方法打印arraylist,对我来说这似乎是合乎逻辑的解决方案,但我只限于使用数组。

deleteFirst()删除链表中的头节点。

1 个答案:

答案 0 :(得分:0)

由于这是你的任务,你可以使用System.arraycopy方法执行类似arrayList的操作:

 MyElementType[] elementArray = new MyElementType[10];
 .....
 element = deleteFirst();
 if (!doWeHaveEmptyLocationInArray()) {
       MyElementType[] tempElementArray = new MyElementType[elementArray.length() * 2];//double the size of array
       System.arraycopy(elementArray, 0, tempElementArray, 0, elementArray.lengh());//copy elements from old array to new one
       elementArray = tempElementArray;
 }
 ...add the removed element to new array