2014-10-31 57 views
0

我正在创建一个链接列表。我已经完成了大部分课程,只是无法弄清楚一些部分。链接列表,添加对象im正确的排序位置

我试过不同的代码,但我不知道什么是正确的,以及如何去做。

任何人都可以请帮助我。

public class LinkedList<T> implements LinkedListADT<T> { 

    private int count; // the current number of elements in the list 
    private LinearNode<T> list; // pointer to the first element 
    private LinearNode<T> last; // pointer to the last element 

    /* 
    * Create an empty list first 
    */ 
    public LinkedList() { 
     this.count = 0; 
     this.last = null; 
     this.list = null; 
    } 

    // 1. add to end of list 
    public void add(T element) { 
     LinearNode<T> node = new LinearNode<T>(element); 

     if (size() == 0) { 
      this.last = node; // This is the last and the 
      this.list = node; // first node 
      this.count++; 
     } // end if 
     else if (!(contains(element))) { 
      last.setNext(node); // add node to the end of the list 
      last = node; // now make this the new last node. 
      count++; 
     } // end if 
    } 
} 

如何在列表中正确的排序位置添加对象。这是我有,但无法弄清楚正确的代码。

/* 
* 2. add in correct sorted position 
*/ 
    public void addSorted(T element) { 
    LinearNode<T> node = new LinearNode<T>(element); 

    } 

回答

0

import java.util。*;公共类LinkedListDemo {公共静态无效的主要(字符串参数[]){/ /创建一个链接列表LinkedList ll = new LinkedList(); //将元素添加到链接列表ll.add(“F”); ll.add( “B”); ll.add( “d”); ll.add( “E”); ll.add( “C”); ll.addLast( “Z”); ll.addFirst( “A”); ll.add(1,“A2”); System.out.println(“原始内容ll://从链接列表中移除元素ll.remove(”F“); ll.remove(2); System.out.println(”de + ll之后的内容); //删除第一个和最后一个元素ll.removeFirst(); ll.removeLast(); System.out.println(“删除第一个+ ll后的ll”); //获取并设置一个值Object val = ll.get (2); ll.set(2,(字符串)VAL + “已改变”);的System.out.println( “变更后LL:” + LL); }}

输出:

原始内容ll:[A,A2,F,B,D,E,C,Z]删除后的内容:[A,A2,D,E,C,Z ll首先和最后删除后:[A2,D ,E,C] ll:[A2,D,E改变,C]

+0

我已经见过这种方式,但它不是我在做什么,并且不能在此工作 – 2014-10-31 03:47:28

0

您首先遍历列表,直到您到达应该输入的位置,然后将该节点及其之前的节点保存到变量中并添加到变量中。

注意:根据它是第一个,最后一个还是中间节点,它会添加不同的内容,因此请确保您有选择语句来检查该内容。

+0

taverse是什么意思? – 2014-10-31 03:48:23

+0

通过列表并在每个点上测试以查看它是否是要插入的节点的正确位置(通常通过使用lopp并检查是否使用了任何变量来对它们进行排序的次数小于后面的节点一旦你到达正确的位置,它将自动停止循环,只要你已经使用变量来保存当前节点和前一个节点的位置,你可以在该位置插入节点) – yitzih 2014-10-31 03:49:51