Реализация структуры данных "Дерево" (указатели на родителей) - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Краткое описание проблемы: есть класс Tree, представляющий собой набор методов. Первый метод - CreateTree, который заполняет случайно массив, элемент массива есть переменная типа Node, которая состоит из 2чисел - номера узла и номера его родителя, ну и соответствено метод должен возвращать мне заполненный массив из n-элементов(n передаю в параметрах метода). Затем, идет ряд методов типа парент, райт сиблинг и т.д. Далее, вызываю из основной программы метод CreateTree, ну и компилятор выдает мне ошибку, что не может неявным образом перобразовать [] в Tree. Собственно, вопрос: как мне решить эту проблему? Описать Т как массив отпадает, ибо задача поставлена так, что в последующие методы я должен передавать переменную типа Tree. Буду очень признателен за любую помощь! п.с. прошу не судить строго, на си шарпе пишу месяц всего(то есть пытаюсь писать), а с классами вообще дел до этого не имел..
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace TreeView1
{
    public class Node
    {
        public int numnode;
        public int parent;
        public Node(int numnode1, int parent1)
        {
            numnode = numnode1;
            parent = parent1;
        }
        public override string ToString()
        {
            return "Узел - " + numnode + "   Родитель - " + parent;
        }
    }
    public class Tree
    {
        public Node[] nodes;
        public Node[] T1;
        public string Str = null;
        public Tree CREATE_TREE(int n)                   
        {                                               
            nodes = new Node[n];                        
            
            Random sourceGen = new Random();
            nodes[0] = new Node(1, 0);
            int rod = 1;
            for (int Numb = 1; Numb < n; Numb++)
            { 
                int Gen=sourceGen.Next(0,1000);
                if (Gen <= 500)
                {
                    int Gen1 = sourceGen.Next(1, 3);
                    for (int i = 1; i <= Gen1; i++)
                    {
                        nodes[Numb] = new Node(Numb + 1, rod);
                    }
                    rod++;
                }
                else
                    nodes[Numb] = new Node(Numb + 1, rod);
            }
            T1=nodes;
            return T1;
        }
        ......................// далее идут методы для работы уже с экземпляром класса Т
    }
    class Program
    {
 
        public const int razmer = 5;                                           
        public const int razmerTreeArray = 3;
        static void Main(string[] args)
        {
            int[] IntArray = new int[razmer];                                     
            Tree T = new Tree();                                                  
            Tree[] TreeArray = new Tree[razmerTreeArray];
            T = T.CREATE_TREE(razmer);                                                 
            //T.OUTPUT_TREE(T,razmer);                                                    
            //Console.WriteLine("родитель узла 10 - "+T.PARENT(10, T));           
            //Console.WriteLine("корень дерева - "+T.ROOT(T));                   
            //Console.WriteLine("длина дерева - " + T.nodes.Length);              
            //Console.WriteLine("левый сын узла 7 - " + T.LEFTMOST_CHILD(7,T));
            //Console.WriteLine("правый брат 7 - "+T.RIGHT_SIBLING(7,T));
            //Console.WriteLine("возврат содержимого 7 узла - "+T.LABEL(7,T));
            //T.MAKE_NULL(T);
            //T.OUTPUT_TREE();
            //T.TOARRAY(IntArray,T);
            //T.TOSTRING(T);
            //T.OUTPUT_ARRAY(IntArray);
            //T.OUTPUT_STRING(T.Str);
            /*for (int i = 0; i < razmerTreeArray; i++)
            {
                TreeArray[i]=T.CREATE_TREE(razmer);
            }
            for (int i = 0; i < razmerTreeArray; i++)
            {
                Console.WriteLine(TreeArray[i]);
            }*/

            Console.ReadKey();
 
        }
    }
    
}

Решение задачи: «Реализация структуры данных "Дерево" (указатели на родителей)»

textual
Листинг программы
        public Node[] CREATE_TREE(int n)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы