Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java实现自定义链表中的方法_Java_Linked List - Fatal编程技术网

用Java实现自定义链表中的方法

用Java实现自定义链表中的方法,java,linked-list,Java,Linked List,我目前正在做一个自己的编程项目,我需要一些帮助 这是我正在使用的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() {

我目前正在做一个自己的编程项目,我需要一些帮助

这是我正在使用的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--;
        }
    }
}
以下是我的问题:

  • 如何创建一个方法来删除LinkedList中任意位置的节点?假设第一个节点的位置为1,第二个节点的位置为2,依此类推

  • 如何为节点1和节点2交换节点的位置

  • 如何根据名称按升序对LinkedList进行排序(假设名称为“albumName”)


  • 我假设您使用的是标准Java“链表”集合,而不是实现自己的

    如果是这样的话,您所要做的就是查看Javadoc和/或任何数量的关于Java集合的优秀教程

    例如:

    1。)您必须编写某种类型的
    find(int)
    方法,该方法返回一个节点,允许您获取对要删除的节点的引用

    假设您有一个双链接的节点,您只需更改周围节点的引用,垃圾收集器就会清除该节点的内存

    如果它是单链接的,则需要使用一个for循环来查找要删除的节点,然后使用对当前节点之后的上一个节点的引用,将prev中next的引用更改为curr.next

    2.)如果编写find方法,则可以切换节点中的数据,也可以使用remove中的类似for循环来更改周围节点的引用

    3.)使用将对数据进行排序的节点编写选择排序。节点不需要移动,您可以切换数据

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

    诸如此类。

    您是在用节点实现自己的链表吗?我使用的是我在网上找到的linkedlist类。我需要粘贴代码吗?如果需要代码帮助,发布代码总是有帮助的。如果可以使用标准的“java.util.LinkedList”,请不要使用“联机找到的链表类”!谢谢你的意见。但是我被教程搞糊涂了,因为它们是在主类中实现的。我需要做的是将方法添加到linkedlist类中,而不是主类中。谢谢