2013-01-01 53 views
0

我目前正在做一个编程项目,我需要一些帮助。使用Java在自定义链接列表中实现方法

这是LinkedList类我使用:

class LinkedList { 
    Node cursor; 
    private Node head; // first node in the linked list 
    private int count; 

    public int getCount() { 
     return count; 
    } 
    public Node getHead() { 
     return head; 
    } 
    public LinkedList() { 
     head = null; // creates an empty linked list 
     count = 0; 
    } 
    public void addFront(int n) { 
     Node newNode = new Node(n); 
     newNode.setLink(head); 
     head = newNode; 
     count++; 
    } 
    public void deleteFront() { 
     if (count > 0) { 
      Node temp = head; 
      head = temp.getLink(); 
      temp = null; 
      count--; 
     } 
    } 
} 

下面是我的问题:

  1. 如何创建在任何位置,除去在LinkedList的节点的方法?假设第一个节点的位置是1,第二个节点的位置是2,依此类推。

  2. 如何交换节点的位置让我们说节点1和节点2?

  3. 如何根据名称以升序对LinkedList进行排序(假设名称为'albumName')?

+0

你是否正在实现自己的节点链表? – irrelephant

+0

我正在使用我在网上找到的链表类。我是否需要粘贴代码? – Deon

+0

如果您需要代码帮助,它始终有助于发布代码。 –

回答

0

我假设你使用的是标准的Java“Linked List”集合,而不是实现你自己的。

如果是这样,你所要做的就是查看Javadoc和/或任何有关Java集合的精美教程。

例如:

+0

感谢您的意见。但是我很困惑这个教程,因为它们在主类中实现。我需要做的是将方法添加到链接列表类中,而不是主要的。谢谢! – Deon

2

1)你必须写某种find(int)方法返回一个节点,这将让你得到的对您要删除的节点的引用。

假设你有一个双链接的,你可以改变周围的节点的引用,并且垃圾收集器将清理该节点内存不足。

如果它是有意义链接的,则需要使用for循环找到要删除的节点,然后使用对当前节点之前节点的引用,将prev中的next引用更改为curr.next。 2)如果你编写了一个find方法,你可以在节点中切换数据,也可以使用类似的for循环来改变周围节点的引用。

3.)使用将排序数据的节点编写选择排序。节点不一定需要移动,你可能只需要切换数据。

for(Node curr = this.head; curr != null; curr = curr.next) 
    for(Node next = curr.next; next != null; next = next.next) 

就是这样的。