LinkedList удаляют метод

Вы хотите метод массива reshape

arr = np.array([ ... ])
arr = arr.reshape(15,15)
9
задан Bill the Lizard 19 September 2012 в 22:05
поделиться

6 ответов

В том же алгоритме, которые тарифицируют Ящерицу, было сказано, но графическим способом :-)

Remove From Linked List
(источник: jaffasoft.co.uk)

20
ответ дан 4 December 2019 в 06:17
поделиться

Общий алгоритм следующие:

  • Найдите, что узел удаляет.
  • node.previous.next = node.next
  • node.next.previous = node.previous
  • node.previous = пустой указатель
  • node.next = пустой указатель
  • Избавьтесь от узла, если Вы находитесь в среде неGC

Необходимо проверить предыдущие и следующие узлы на пустой указатель, чтобы видеть, удаляете ли Вы голову или хвост, но это - легкие случаи.

17
ответ дан 4 December 2019 в 06:17
поделиться
public void remove ()
{
    if (getPreviousNode () != null)
        getPreviousNode ().setNextNode (getNextNode ());
    if (getNextNode () != null)
        getNextNode ().setPreviousNode (getPreviousNode ());    
}
3
ответ дан 4 December 2019 в 06:17
поделиться

Реализация Двунаправленного связанного списка Удаляет Методы (из моего второго распределения работы по программированию):

public void remove(int index) {
    if(index<0 || index>size())
    throw new IndexOutOfBoundsException("Index out of bounds. Can't remove a node. No node exists at the specified index");
    if(size()==0) {
        throw new NullPointerException("Empty list");
    }
    if(!isEmpty()) {
        Node current;
        //starting next one to our head
        current = head.next;
        for(int i=0;i<index;i++) {
            current = current.next;
        }
        current.previous.next = current.next;
        current.next.previous = current.previous;
        numOfNodes--;
        sizeChangeCount++;
    }
}

public boolean remove(T o) {
    Node current = head;
    for(int i=0;i<size();i++) {
        current=current.next;
        if(current.data.equals(o)) {
            current.previous.next = current.next;
            current.next.previous = current.previous;
            numOfNodes--;
            sizeChangeCount++;
            return true;
        }           
    }
    return false;
}
1
ответ дан 4 December 2019 в 06:17
поделиться

Вы просите название метода в API? Тот ответ просто был бы, удаляют, предполагая, что Вы спрашиваете о java.util. LinkedList, который является на самом деле двойным связанным списком.

... или Вы спрашиваете о том, чем называют название алгоритма удалить элемент из того типа структуры данных? Хорошо.. ответ для этого должен был бы также удалить элемент. Теперь, чтобы фактический алгоритм сделал это... это - действительно просто вопрос изменения прямого указателя в предыдущем узле и последнем указателе в следующем узле. Однако при использовании структуры данных от нескольких потоков Вы должны будете или синхронизировать удалить метод или сделать шаги удаления в порядке, который будет иметь смысл для Вашего шаблона использования для структуры данных.

0
ответ дан 4 December 2019 в 06:17
поделиться

Что относительно текущего указателя указателя? Необходимо переместить crnt в следующий узел. http://pastebin.ca/1249635

0
ответ дан 4 December 2019 в 06:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: