2015-01-18 3 views
1

Я создал этот класс Node для односвязного списка:односвязано список пуста проверка

class Node{ 
    int item; 
    Node next; 
    Node(int v){ 
    item = v; 
    next = null; 
    } 
} 



Я хочу, чтобы сделать поиск узла с наибольшим ключом в методе называется findmax. Но я хочу проверить, пуст ли пул, и если да, то для возврата null, иначе верните узел с наивысшим ключом. Это то, что я сделал:

Node findmax(Node h){ 
    if(h==null) 
    return null; 
    else{ 
    //search 
    } 

Все, что я хочу знать, если чек я сделать, чтобы увидеть, если список пуст правильно.

ответ

0

Да, проверка вы сделали правильно, если:

Node n = null;// init empty list 

и:

n = new Node(3);// first item 

Однако, я предлагаю вам создать list-структуру, которая не зависит от item он присоединяет , Вот что я имею в виду:

Node класс:

public class Node 
{ 
    int value; 

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

    public int getValue() { 
     return value; 
    } 
} 

list структура:

public interface IList 
{ 
    public int getNodeNumbers(); 
} 

public class EmptyList implements IList 
{ 
    @Override public int getNodeNumbers() { 
     return 0; 
    } 
} 

public class ConsList implements IList 
{ 
    private Node node; 

    private IList next; 

    public ConsList(Node node, IList next) { 
     this.node = node; 
     this.next = next; 
    } 

    @Override public int getNodeNumbers() { 
     return 1 + next.getNodeNumbers(); 
    } 
} 

Как использовать:

public class Main 
{ 
    public static void main(String[] args) { 
     IList list1 = new ConsList(new Node(1), 
      new ConsList(new Node(2), 
      new ConsList(new Node(3), 
      new ConsList(new Node(4), 
      new EmptyList())))); 

     IList list2 = new EmptyList(); 

     System.out.println(list1.getNodeNumbers() + " - " + list2.getNodeNumbers()); 
    } 
} 

И теперь список пуст (вы можете создать свой собственный метод isEmpty() в IList), когда getNodeNumbers() возвращает 0.

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

  • Нет связанных вопросов^_^