2015-04-21 2 views
2

Я написал этот простой код, чтобы проверить погоду, куча пустой пусто или нет. У меня проблема с return. Это не может быть: null, void, или ничего; Он должен вернуть что-то int, но я не знаю что. Итак, что я должен поставить там, если я хочу, чтобы этот код был прост? (Я имею в виду не использовать класс Integer или java.lang.Integer).Что нужно вернуть как минимальный элемент пустой кучи

public int getMinimum() {  
    if (isEmpty()) { 
    System.out.println("Heap is empty"); 
    return;   
    } else 
    return data[0]; 
} 
+2

возвращение '-1' или специальное значение –

+0

Код может возвращать то, что вы хотите. Что это на самом деле делает? Каково ваше определение простого. В вашем наборе данных есть нулевое допустимое решение? Может, -1 будет работать? Вам нужно предоставить более подробную информацию/контекст. – mjuarez

+0

Он не может вернуть «-1», так как он может смутить «минимальное значение» дерева. – Hengameh

ответ

2

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

public int getMinimum() throws Exception { 
    if (isEmpty()) 
     throw new Exception("Heap is Empty"); 
    else 
     return data[0]; 
} 

и при получении минимального

try{ 
    int i = getMinimum(); 
    System.out.println("Minimum is :" + i); 
}catch(Exception e){ 
    System.out.println(e.getMessage()); 
} 
1

Я могу только помочь с устранением ... Java это не волшебство. Если вы объявите свою функцию для возврата «int», тогда компилятор заставит вас вернуть int. Который оставляет ограниченные возможности:

1) бросить исключение, и научить своих пользователей, чтобы использовать его в сочетании с 'IsEmpty()', например: если (theHeap.isEmpty()) System.out.println (» пустой "); еще System.out.println (theHeap.getMinimum())

2) использовать это целое число, которое вам не нравится (я предполагаю, что, по соображениям производительности?)

3) найти значение INT это вряд ли будет присутствовать в данных, например возможно, вы не ожидаете, что ваша куча никогда не будет содержать Integer.MIN_VALUE.
Если ваша куча содержала парные, я бы рекомендовал NaN.

Это все, что доступно в синтаксисе Java, извините, это не земля торможения ...

1

INT является примитивным и, следовательно, должен иметь значение. Если вы действительно хотите разрешить это так, вам нужно указать определенную величину int, которая никогда не появится в куче. Вы также можете попробовать выбросить исключение, когда куча пуста.

0

мы можем просто объявить это "Integer" вместо "INT", так что мы можем вернуться "нуль", а также.

public Integer getMinimum(){  
    if(isEmpty()) 
    return null;   
    else 
    return data[0]; 
} 
Смежные вопросы