2013-04-06 8 views
-3

Я пытался выяснить, что связанный список за последний час & Я узнал, что он содержит узлы и ссылку. Что это за узел? Как вы определяете связанный список в java? Хотя я читал другую программу, но я хочу самый простой, не используя никакой прямой функции. Как работать и получать доступ к связанному списку? И как вы храните ссылку и узлы? Это несколько вопросов, о которых я смущен. Спасибо, и любая часть ответа будет оценена по достоинству.Как начать связанный список?

+0

Это может быть найдено с чуть-чуть исследований. Пойдите, затем попробуйте примеры. Если у вас есть проблема, задайте другой вопрос. –

+0

проверить этот вопрос http://stackoverflow.com/questions/10167450/linkedlist-java-traverse-and-print – Satya

+0

Я сказал, что проверил множество программ. Я просто не могу понять. Я использую только массивы. @PreetSangha – Neer

ответ

0

Связанный список - это упорядоченный список, в котором один узел ссылается на следующий. Ваш список должен отслеживать текущий узел, который содержит ссылку на следующий узел. Когда список итерируется, текущий узел переключается на следующий узел, который содержит ссылку на следующий узел. Цикл продолжается оттуда.

Простой поиск в Google показывает много информации о LinkedList. Это wikipedia page объясняет это довольно хорошо.

Возможно, иллюстрация интерфейса узла поможет.

public interface Node(){ 

    public Node next(); 
    public Node prev(); 
} 

С помощью этого интерфейса можно создать «цепочку» узлов, так как узел имеет ссылку на следующий и предыдущий узлы.

Должен заметить, что я, возможно, неправильно понял ваш вопрос, я думал, что вы хотите создать свою собственную реализацию.

+0

Да, я читал это. Реализация немного запутанна. – Neer

+0

@Neer Какая часть сбивает с толку? –

+0

Как работают ссылки? Как я могу получить доступ ко всему этому. – Neer

0

Реализация не то, что вам нужно беспокоиться о том, чтобы иметь возможность использовать этот список:

List<String> yourList = new LinkedList<String>(); 

    yourList.add("item1"); 
    yourList.add("item2"); 
    // etc 

    // iterating example 
    for(String currentNodeElementOrWhatever : yourList) { 
     // use this element somehow 
     System.out.println(currentNodeElementOrWhatever); 
    } 

в этом случае «item1» и «item2» являются узлами, и они имеют ссылку на их следующий узел, так что item1 -> item2 и item2 -> null, поскольку это последний элемент.

+0

Спасибо :) Где и как использовать ссылки. Является ли он реализован автоматически или мне нужно также реализовать ссылки. И в случае целого числа я могу использовать ? – Neer

+0

ссылки - это всего лишь подробности реализации, я могу предоставить больше информации, но если вы просто хотите начать работать, вам действительно не нужно это прямо сейчас. Вы можете использовать int, но вы должны объявить список следующим образом: List yourList = new LinkedList (); это называется autoboxing, о котором вы можете узнать больше, если хотите. –

+0

Спасибо за помощь. :) – Neer

0

Вот пример класса для узла.

public class Node<T>{ 
     Node next; 
     T value; 
} 

Пример реализации псевдо-кода для LinkedList:

Add(val){ 
    Node newNode = new Node(); 
    newNode.next = firstNode; 
    tailNode.next = newNode; 
    newNode.value = val; 
} 

Get(idx){ 
    Node currentNode = firstNode; 
    while(idx--!= 0) 
     currentNode = currentNode.next; 
    return currentNode.value; 
} 

Delete(idx){ 
    Node nodeToRemove= firstNode; 
    while(idx-- > 0) 
     nodeToRemove= currentNode.next; 
    nodeToRemove.next = null; 
} 
Смежные вопросы