Как реализовать это древовидное представление в C # - PullRequest
0 голосов
/ 01 апреля 2019

Мне нужно реализовать двоичное представление дерева, прикрепленное на диаграмме.Процесс идет так.Сначала начните с позиции № 1.Затем нужно распечатать P # 2. После p # 3. Как метод бинарного дерева нужно печатать сначала слева, а затем справа.Это для пирамиды.Пожалуйста, проверьте пример ниже, как это должно быть.Каждый узел представляет клиента (по идентификатору) и его позицию.

Пример: предположим, что customerID - это номер 01, и он может иметь 5 позиций в дереве, представляющих его идентификатор # 1, как на диаграмме.И клиент №2 имеет 3 позиции в дереве.Таким образом, у нас много клиентов, и у некоторых есть более 20 позиций в каждом узле.Мне нужно решение для реализации этой точки зрения.Обратите внимание, что это не относится к бинарному дереву поиска.Спасибо!

Пожалуйста, проверьте изображение здесь

1 Ответ

1 голос
/ 01 апреля 2019

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

Так что вам нужно будетПродолжайте построчно: создайте список узлов на этом уровне, а затем, чтобы получить следующий уровень, возьмите всех левых потомков каждого и затем всех правых потомков каждого из них, чтобы сформировать следующий уровень.Это распутает ваше любопытное дерево, и вы посетите узлы в следующем порядке:

  Position #1
  LEFTS = { P#1 }, RIGHTS = { P#2 }
  LEFTS = { P#3 P#4}, RIGHTS = { P#5 P#6 }
  LEFTS = { P#7 P#8 P#9 P#10 }, RIGHTS = { P#11 P#12 P#13 P#14 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...