2013-11-18 2 views
-3

Хорошо, ребята, мне нужно написать метод; MyLinkedList getFirst (int n) - возвращает связанный список первых n элементов. Если список пуст или n> размер возвращает null.возвращает связанный список первых n элементов

и я потерял, я сделал mothods добавлять, удалять, добавлять к середине, печатать строку элементов, и так далее, но это один есть я застрял ..

все, что я до сих пор является:

public MyLinkedList<E> getFirst(int n) { 
    if(n > size) { 
     return null; 
    } 
    Node<E> current = head; 
    for (int i = 0; i == n; i++) { 
     current.next = new Node<E>(e); 
    } 
} 

Я знаю, что этот код довольно неправильно, но его все, что я могу думать работали над этим заданием на некоторое время, и я просто выдыхаюсь Я думаю, лол

Спасибо за любого и всякая помощь.

+1

домашнее задание? это неправильное место, чтобы спросить. –

+3

домашнее задание прекрасно, если кто-то искренне пытался решить проблему сам, прежде чем спрашивать. –

+3

Честно говоря, это не похоже на то, что вы работали над этим на некоторое время. –

ответ

2
  1. Создать пустой список
  2. Добавить голова в список
  3. Продолжает добавление следующего узла к списку, пока вы не первые п узлов.
+0

спасибо, я немного обновил свой код, это заголовок в правильном направлении? – user2745043

+0

Ваша петля выглядит неправильно. В какой-то момент вам нужно вернуть объект 'MyLinkedList ', который, как я полагаю, вы написали сами. – MxyL

0

Вы можете использовать это в качестве прототипа и приступить к любой операции

public class Node { 
    private int data; 
    private Node next; 

    public Node(int data) { 
     this.data = data; 
    } 

    public int getData() { 
     return data; 
    } 

    public void setData(int data) { 
     this.data = data; 
    } 

    public Node getNext() { 
     return next; 
    } 

    public void setNext(Node next) { 
     this.next = next; 
    } 

    public Node(int data, Node next) { 
     this.data = data; 
     this.next = next; 
    } 

} 


public class LinkedList { 
    private Node start; 

    public LinkedList() { 
     start = null; 
    } 

    public void insert(int x) { 
     if(start == null) { 
      start = new Node(x, start); 
     } else { 
      Node temp = start; 

      while(temp.getNext() != null) { 
       temp = temp.getNext(); 
      } 
      Node newNode = new Node(x,null); 
      temp.setNext(newNode); 
     } 
    } 

    public void getFirst() { 
     if(start == null) { 
      System.out.println("\n List is empty !!"); 
     } 
     else { 
      Node temp = start; 
      System.out.println("\n First Element is --->" + temp.getData()); 
     } 
    } 

} 

public class MainClass { 
    public static void main(String[] args) { 
     LinkedList ll = new LinkedList(); 

     System.out.println("\n--- Inserting 100 ---\n"); 
     ll.insert(100); 

     ll.insert(101); 
     ll.insert(102); 
     ll.insert(103); 

     System.out.println("\n--- First Element ---\n"); 
     ll.getFirst(); 

    } 

} 
+1

Довольно уверен, что OP не может использовать реализацию Java LinkedList, поскольку это упражнение по структурам данных ..: D – gtgaxiola

+0

OP в смысле, вы имеете в виду операцию –

+0

OP = исходный плакат: D http://meta.stackexchange.com/вопросы/146513/что-делает-оп-среднее – gtgaxiola

1
public MyLinkedList getFirstN(int n) { 
    MyLinkedList firstNList=new MyLinkedList();//create an empty list 
    if(n>size) 
     firstNList= null; 
    else { 
     Node tmp=head; //initialise tmp Node to the head(beginning) of list 
     for(int i=0;i<n;i++) { 
      firstNList.add(tmp);//add current node to the end of list 
      tmp=tmp.getNext(); 
     } 
    } 
    return firstNList; 
} 

Реализуйте метод add(Node node) для добавления Node в конец списка.

Смежные вопросы