Каков элегантный способ обработки дубликатов в двоичном дереве поиска? Предположим, что каждый ключ будет иметь несколько разных значений. То, что мне нужно сделать, это перебрать все значения по порядку. Поэтому, если бы у меня было 2 значения A и B с ключом 1 и одно значение C с ключом 2, я бы хотел получить пары: (1, A), (1, B), (2, C), когда вы вызываете что-то вроде TreeIterator.next();Дубликаты в двоичном дереве поиска
я могу думать:
- Каждый узел имеет ключ, и массив значений, где значения с тем же ключом идти
- Каждый узел имеет
visited
флаг
Любые другие предложения? В качестве общего руководства я хотел бы, чтобы реализация Tree была максимально абстрактной.
Что вы подразумеваете под «обращением»? Хотите ли вы представить их или проглотить? Зачем вам нужен ключ и массив значений - если значения одинаковы, почему бы просто не сохранить число для количества значений логически в этом узле? –
Добавлено подробное описание. Извини за это. – user1377000