Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по java

иван савин Ученик (42), на голосовании 1 год назад
Как реализовать динамический связный список с использованием стеков и очередей в Java?
Голосование за лучший ответ
Эдуард Достоевский Ученик (202) 1 год назад
Динамический связный список можно реализовать в Java с использованием классов Node и LinkedList. Класс Node представляет узел списка, который содержит значение и ссылку на следующий узел. Класс LinkedList содержит ссылку на головной элемент списка и реализует операции добавления, удаления и получения элементов.

Для реализации стека можно использовать LinkedList и методы addLast() и removeLast(). Например:

class Stack {
private LinkedList<Integer> list;

public Stack() {
list = new LinkedList<Integer>();
}

public void push(int value) {
list.addLast(value);
}

public int pop() {
return list.removeLast();
}
}


Для реализации очереди можно использовать LinkedList и методы addLast() и removeFirst(). Например:

class Queue {
private LinkedList<Integer> list;

public Queue() {
list = new LinkedList<Integer>();
}

public void enqueue(int value) {
list.addLast(value);
}

public int dequeue() {
return list.removeFirst();
}
}


Для реализации динамического связного списка можно использовать класс Node и методы addLast() и removeFirst() LinkedList. Например:

class Node<T> {
private T value;
private Node<T> next;

public Node(T value) {
this.value = value;
this.next = null;
}

public void setNext(Node<T> next) {
this.next = next;
}

public Node<T> getNext() {
return next;
}

public T getValue() {
return value;
}
}

class LinkedList<T> {
private Node<T> head;

public LinkedList() {
head = null;
}

public void addLast(T value) {
Node<T> newNode = new Node<T>(value);

if (head == null) {
head = newNode;
} else {
Node<T> current = head;

while (current.getNext() != null) {
current = current.getNext();
}

current.setNext(newNode);
}
}

public T removeFirst() {
if (head == null) {
throw new NoSuchElementException();
}

T value = head.getValue();
head = head.getNext();
return value;
}
}
Похожие вопросы