Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2010, 04:23   #1
Divus
Новичок
Джуниор
 
Регистрация: 11.10.2010
Сообщений: 1
По умолчанию Реализация структуры данных "дерево(указатели на родителей)" в Си Шарп

Здравствуйте!
Краткое описание проблемы:
есть класс Tree, представляющий собой набор методов. Первый метод - CreateTree, который заполняет случайно массив, элемент массива состоит из 2чисел - номера узла и номера его родителя, ну и соответствено метод должен возвращать мне заполненный массив из n-элементов(n передаю в параметрах метода). Затем, идет ряд методов типа парент, райт сиблинг и т.д. Далее, вызываю из другого проекта метод КриэйтТрее примерно таким образом: T=Tree.CREATE_TREE(razmer), где Т - новый экземпляр класса Tree, ну и компилятор выдает мне ошибку, что не может неявным образом перобразовать [] в 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();

}
}

}

Последний раз редактировалось Divus; 11.10.2010 в 23:39.
Divus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры данных "стек" 777Aidar777 Помощь студентам 5 26.11.2012 11:26
Курсовой по дисциплине "Структуры и организация данных в ЭВМ" (БНТУ) alex_fox Фриланс 4 19.10.2009 09:17
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04