Как эффективно сохранить удаленное значение из списка ссылок в стек. И после сохранения я хочу выполнить операцию отмены, чтобы вернуть удаленный узел из стека обратно в список ссылок, откуда я его удалил.
package DataStructure.LinkedListPractise;
import java.util.ArrayList;
import java.util.List;
public class practiseLinkedList {
public static void main(String[] args) {
List newList = new ArrayList();
newList.add(32);
newList.add(388);
newList.add(129);
for (int i = 0; i < newList.size(); i++) {
System.out.println(newList.get(i));
}
newList.remove(1);
System.out.println();
}
}
Так зачем вообще удалять его из связанного списка?




Вы отслеживаете еще один список удаленных индексов и значений, а затем можете повторно применить их по порядку:
public record Node(int index, int value){};
public static void main(String[] args) {
List newList = new ArrayList();
newList.add(32);
newList.add(388);
newList.add(129);
System.out.println("Full list: " + newList);
List<Node> history = new ArrayList();
history.add(0, new Node(1, (int) newList.remove(1)));
System.out.println("Remove: 388 " + newList);
history.add(0, new Node(1, (int) newList.remove(0)));
System.out.println("Remove: 32 " + newList);
Node lastItem = history.remove(0);
newList.add(lastItem.index, lastItem.value);
System.out.println("Return: 32 " + newList);
lastItem = history.remove(0);
newList.add(lastItem.index, lastItem.value);
System.out.println("Return: 388 " + newList);
}
Full list: [32, 388, 129]
Remove: 388 [32, 129]
Remove: 32 [129]
Return: 32 [32, 129]
Return: 388 [32, 388, 129]
Я не до конца понимаю назначение двумерных массивов, но это точно: +1
Двумерный массив предназначен только для упрощения ответа, но, конечно, лучше заменить его пользовательским объектом, например static class Node {int index; int value;} или record Node(int index, int value) или Pair/Tuple, вместо другого массива.
Итак, вы сохраняете позицию в исходном списке и значение удаленного элемента исходного списка? IC...
да, вам нужно отслеживать удаленный индекс и удаленный объект, чтобы иметь возможность отменить эту операцию
Это вопрос в стиле «пожалуйста, напишите все мое приложение» / «пожалуйста, сделайте за меня домашнее задание»; ТАК это не тот сайт.