Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Polina B
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 124
1

Бинарное дерево

21.06.2018, 14:32. Просмотров 94. Ответов 0
Метки нет (Все метки)

Здравствуйте! Дали такое задание. Нужно вместо троеточий в коде вставить несколько строчек. Не могу понять, что написать надо(
Спроектировать класс BinTree.
Описание алгоритмов.
Метод insert(int V).
Условия добавления листа дерева.
Начиная с корня дерева для каждого узла дерева:
• Если значения R узла равно значению V входной величины, то ничего не делать, выход;
• Если R>V, то добавить V в левое поддерево, выход;
• Если R<V, то добавить V в правое поддерево, выход;
Метод левостороннего обхода дерева List<int> leftRoad().
• Обработать левое поддерево.
• Записать значение корня дерева в список
• Обработать правое поддерево;

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
class Program{
    interface IBT
    {
        void insert(int t);
        List<int> leftRoad ();
    }
    class BinTree:IBT
    {
      bool Root;
      BinTree left, right;
      int item;
      //public int? Pitem { get{return item;} private set{item=(int)value;} }
      public BinTree() { left = right = null; Root = false;  }
      public BinTree(int Item)
      {
        left = right = null;
        Root = true;
        item = Item;
      }
public void insert(int t)
      {
        if (!Root) { Root = true; item=t; return; }
        BinTree oN = this;
        while (oN != null)
 . . .  }
 static List<int> oL = new List<int>();
      public List<int> leftRoad ()
      {
          . . .
        return oL;
      }
}
static void Main(string[] args)
    {
        StreamReader R = new StreamReader("in.txt");
        StreamWriter W = new StreamWriter("out.txt");
      BinTree bt=new BinTree();    
      int[] A;// ={ 31, 17, 12, 22, 18, 21 };
        string [] As;
        As=R.ReadLine().Split(',');
        A=new int[As.Length];
        for (int i = 0; i < As.Length; i++)
            A[i] = Convert.ToInt32(As[i]);
            foreach (int t in A)
                bt.insert(t);
      List<int> L;
      L = bt.leftRoad ();
      foreach (int t in L)
          W.Write(" " + t);
      W.WriteLine();
      R.Close();
      W.Close();
    }
  }
Пример исполнения программы.
in.txt
31, 17, 12, 22, 18, 21
out.txt
12 17 18 21 22 31
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2018, 14:32
Ответы с готовыми решениями:

Преобразовать идеальное бинарное дерево в бинарное дерево поиска
Всем привет, я создал идельное бинарное дерево и написал к нему функции. Как...

Бинарное дерево: как происходит добавления элемента в дерево с двумя параметрами
Здравствуйте! Прошу помощи у опытных программистов...)))) Есть класс дерево: ...

Бинарное дерево C#
мне дана такая задача: Напишите программу, реализующую работу бинарного дерева....

Бинарное дерево C#
помогите доделать бинарное дерево, а то ничего вообще не получается, в концоли...

Бинарное дерево
Добрый день!!! Есть структура такого вида: private float value=0; //...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2018, 14:32

Бинарное дерево
Доброго вечера всем! Нужна помощь, так как сама не знаю как реализовать...

Бинарное дерево
Народ, подкиньте, плз, исходник с пояснениями для решения следующей задачи....

Бинарное поисковое дерево
Необходимо определить номер уровня, в котором содержится максимальное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru