graph - Каковы недостатки, если я заменю каждый связанный список в списке смежности хэш-таблицей?

В CLRS 22.1-8 (я учусь самостоятельно, а не в университетах)

Предположим, что вместо связанного списка каждый элемент массива Adj[u] является хэш-таблица, содержащая вершины v, для которых (u,v) ∈ E. Если все краевые поиски равновероятны, каково ожидаемое время для определить, есть ли ребро в графе? Какие недостатки имеет эта схема есть? Предложите альтернативную структуру данных для каждого ребра список, решающий эти проблемы.Есть ли в вашей альтернативе недостатки по сравнению с хеш-таблицей?

Итак, если я заменю каждый связанный список хеш-таблицей, возникнут следующие вопросы:

  1. каково ожидаемое время, чтобы определить, есть ли ребро в графе?
  2. Каковы недостатки?
  3. Предложите альтернативную структуру данных для каждого списка ребер, которая решает эти проблемы.
  4. Есть ли у вашей альтернативы недостатки по сравнению с хеш-таблицей?

У меня есть следующие частичные ответы:

  1. Я думаю, что ожидаемое время равно O(1), потому что я просто иду Hashtable t = Adj[u], затем возвращаю t.get(v);
  2. Я думаю, недостатком является то, что Hashtable будет занимать больше места, чем связанный список.

Что касается двух других вопросов, я не могу понять.

Кто-нибудь может подсказать?

17
задан Jackson Tale 12 March 2012 в 13:07
поделиться