У меня есть массив типа int, который описывает объекты Node определёнными последовательностями чисел, у каждого Node может быть больше двух потомков, я не нашёл нормальной информации о том, как строить такое дерево, я сделал так : из массива получаю информацию о названии, весе, и кол-ве потомков корня Node. По кол-ву потомков я создал массив типа Node длиной в число потомков. Что именно я должен поместить в этот массив - объекты, или ссылки на них по типу Node n1, n2 ...; Проблема в том, что массив может быть любой длины, и я не совсем понимаю как мне организовать тот код что я написал, для того чтобы доставать информацию не только о корне, но и об объектах ссылки на которые будут находиться в массивах типа Node. Пример конструктора для объекта типа Node который имеет потомков public Node(String name, int weight, Node[] children) { this.name = name; this.weight = weight; this.children = children; } Если у Node нет потомков, то я сделал такой же конструктор только без массива Children. Вот код который у меня есть к этому времени (массив заполнил произвольными данными, чтобы было с чем работать и видеть работает ли то, что я пишу, а так не считая очередности информации он может быть произвольным) **P.S. для поиска каждого параметра для корня я написал по 2 варианта кода, потому что название может быть записано в list[startPoint], или в list[startPoint] + list[startPoint + 1], то-есть 2 символа char** public class Main { public static void main(String[] args) { String korName; int korWeight; int temp = 0; Scanner scanner = new Scanner(System.in); System.out.println("Enter array's size"); int size = scanner.nextInt(); System.out.println("Enter starting point"); int startPoint = scanner.nextInt(); int[] list = new int[size]; list[0] = 0; list[1] = 65; list[2] = 0; list[3] = 1; list[4] = 7; list[5] = 19; list[6] = 0; list[7] = 66; list[8] = 0; list[9] = 2; list[10] = 14; list[11] = 0; list[12] = 31253; list[13] = 31254; list[14] = 68; list[15] = 0; list[16] = 4; list[17] = 17; list[18] = 0; list[19] = 67; list[20] = 0; list[21] = 3; list[22] = 0; //--------------------------------------find kor name----------------------------------------- if (list[startPoint + 1] != 0) { String a = String.valueOf(Character.toChars(list[startPoint])); String b = String.valueOf(Character.toChars(list[startPoint + 1])); korName = a + b; } else { korName = String.valueOf(Character.toChars(list[startPoint])); } //--------------------------------------find kor weight--------------------------------------- if (list[startPoint + 1] != 0) { korWeight = list[4]; } else { korWeight = list[3]; } //--------------------------------------find kor children amount------------------------------ if (list[startPoint+3] != 0 && list[startPoint+1] == 0){ for (int i = 3; i < list.length; i++){ if (list[startPoint+i] == 0){ break; } if (list[startPoint+i] != 0){ temp++; } } Node[]korChildren = new Node[temp]; } if (list[startPoint+1] != 0 && list[startPoint+4] != 0){ for (int i = 4; i < list.length; i++){ if (list[startPoint+i] == 0){ break; } if (list[startPoint+i] != 0){ temp++; } } Node[]korChildren = new Node[temp]; } System.out.println(temp); } На этом этапе я застрял на том что создал массив правильного размера по кол-ву потомков, и не знаю как заполнять дерево дальше.