2013-06-23 5 views
0

Я реализую график для школьного задания со списком смежности. У меня проблемы с методом поиска. Я хотел бы задать вам следующий вопрос:График Абстрактный Тип данных: Метод поиска.

Если вы ищете вершину, которая не находится на графике, это должна быть ошибка? Каков наилучший критерий, чтобы определить, является ли возможный результат ошибкой или нет?

Спасибо, Гонсало из Аргентины (Надеюсь, вы понимаете мой английский.)

ответ

2

Решение состоит в том, чтобы бросить NoSuchElementException, если элемент не существует.

Альтернативным решением может быть использование чего-то похожего на Scala или Haskell's Maybe.

Другим возможным решением является введение пары методов boolean contains(VertexID id) и Vertex get(VertexID id). Класс должен использовать метод запроса contains для поиска присутствия для элемента и получателя только в том случае, если он знает, что этот элемент существует. Конечно, get должен вызывать NoSuchElementException, если он вызывается для отсутствующего элемента.

+0

Правильно ли исключить исключение? Когда вы ищете что-то, вы не всегда найдете его. –

+0

Я добавил еще одно возможное решение для решения этой проблемы – mariosangiorgio

+0

Спасибо! Это было очень полезно. –