Получение элементов в списке смежности

У меня есть вопрос по поводу списков смежности. Это пример списка, который я использую.

В коде (C++) я реализую это как вектор списков некоторого родового элемента. Так vector<list< element >>, В этом случае элементы A, C, D, H, K, L, N все в векторе. Мой вопрос захватывает определенный элемент. Скажем, я использую цикл for, чтобы перебрать вектор adjList, Чтобы получить элемент из вектора, вы бы сказали *vector name*[i] и это получает элемент сам по себе. Но что он делает, когда элемент в векторе является началом списка? Допустим, я хочу только элемент D, Чтобы получить это я говорю adjList[3], Будет ли это просто схватить D? Или сказал бы, что захватить весь список, который начинается в D? Я не хочу весь список, я просто хочу D, Если он захватывает весь список, как я могу получить только один элемент, который мне нужен? Может кто-нибудь помочь объяснить?

1 ответ

Когда вы пишете сами, у вас есть vector<list< element >>, Это означает, что adjList[i] даст вам список. Ваши элементы A,C,D доступны как adjList[i].front()или многословно,

list< element > l = adjList[i];
element D = l.front();

Последнее может быть полезно, если вам нужно работать с остальной частью списка тоже.

Другие вопросы по тегам