Как правильно построить структуру-дерево(Golang) и как с ней работать?

В интернете очень много примеров про построение бинарных деревьев и работу с ними, но найти внятное объяснение работы с не бинарными деревьями я найти не смог, возможно потому что особой разницы нет. Но я не до конца понимаю принцип работы.
Мне нужно реализовать дерево поиска определенной категории в YML файле, в зависимости от выбранного уровня, если 0 уровень — это сайт, 1— уровень категории без родителей, 2 - уровень все категории у которых родитель - тот, кто находится в вершинах 1го уровня.

Структура YML
type Yml struct {
	XMLName xml.Name `xml:"yml_catalog"`
	Date    string   `xml:"date,attr"`
	Shop    []Shop   `xml:"shop"`
}

type Shop struct {
	Name       string     `xml:"name"`
	Company    string     `xml:"company"`
	URL        string     `xml:"url"`
	Categories []Category `xml:"categories>category"`
	Offers     []Offer    `xml:"offers>offer"`
}

type Category struct {
	ID       int    `xml:"id,attr"`
	ParentID int    `xml:"parentId,attr"`
	Category string `xml:",chardata"`
}
  • Вопрос задан
  • 1469 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы