Реализация дерева посредством левыъ сыновей и правых братьев

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

var arrayList = new ArrayList();

for (int i = 0; i < 11; i++)

{

var treeElement = new TreeElement();

arrayList.Add(treeElement);

}

var myStruct1 = (TreeElement)arrayList[1];// у элемента 2 1-родитель 3- левый сын 8 - правый брат

myStruct1.parent = 1;

myStruct1.son = 3;

myStruct1.brother = 8;

var myStruct2 = (TreeElement)arrayList[2];// у элемента 3 2-родитель 4 и 5- правые братья

myStruct2.parent = 2;

myStruct2.brother = 4;

myStruct2.brother = 5;

var myStruct4 = (TreeElement)arrayList[4];// у элемента 5 2- родитель 6 - сын

myStruct4.parent = 2;

myStruct4.son = 6;

var myStruct5 = (TreeElement)arrayList[5]; // у элемента 8 1- родитель 7- сын

myStruct5.parent = 1;

myStruct5.son = 7;

}

private void textBox1_TextChanged(object sender, EventArgs e)

Задания по вариантам:

1. Составить программу, которая создает из заданного множества (табл.1) бинарное дерево. Необходимо осуществить заданный в соответствии с вариантом (табл. 2) обход бинарного дерева.

2. К полученному списку обхода применить предложенный в вашем варианте метод поиска (табл.3).

Таблица 1 - Выбор заданного множества

Вариант Множество
   
  1, 0, -3, 4, 15, 56, 38, 80, 23, 100
  45, 56, 77, 123, 7, 12, 20, 4, 5, 0
  32, 8, 17, 25, 78, 35, 16, 34, 3, 91
  40, 68, 93, 79, 12, 13,18,25, 33, 7
  16, 70, 53, 69, 12, 3, 9, 2, 1, 0
  44, 23, 22, 20, 21, 5, 78, 69, 55, 43
  56, 78, 90, 100, 99, 63, 95, 54, 46, 47
  6, 2, 7, 90, 35, 67, 0, -3, -5, -1
  0, -3, -10, -5, -7, 11, 56, 47, 100, 101
  67, 78, 70, 74, 123, 120, 54, 57, 34, 7
  300, 456, 400, 367, 432, 3, 8, 10, 0, 1
  50, 47, 23, 45, 10, 1, 67, 89, 170, 152
  5, 90, 67, 70, 141, 0, -30, -5, -1, -28
  -4, 0, 45, -3, -50, 43, 38, 34, 36, -44
  700, 734, 708, 711, 767, 567, 32, 45, 0, 1
  8, 16, 17, 15, 0, 1, -6, -8, -5, -4
  39, 38, 40, 15, 18, 16, 3, 700, 800, 739
  22, 27, 25, 38, 35, 36, 11, 12, 13, 10
  771, 79, 19, 90, 0, 1, -5, 789, 300, 181
  37, 89, 10, 13, 56, 16, 30, 40, 32, 31
  99, 16, 39, 14, 18, 125, 209, 300, 274, 0
  40, 50, 34, 48, 31, 29, 14, 16, 11, 12
  61, 400, 387, 301, 305, 6, 17, 10, 9, -2
  -3, 0, 1, 8, 7, -14, -16, -10, 10, 18
  500, 511, 501, 635, 607, 100, 55, 104, 0, 5

Таблица 2 - Выбор обхода бинарного дерева

Вариант Название обхода
1, 4, 7, 10, 13, 16, 19, 22, 25, симметричный
2, 5, 8, 11, 14, 17, 20, 23 в прямом порядке
3, 6, 9, 12, 15, 18, 21, 24 в обратном порядке

Таблица 3 - Выбор метода поиска

Вариант Название поиска
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50 последовательный
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49 индексно-последовательный

Лабораторная работа № 6

«ИЗУЧЕНИЕ АТД «СЛОВАРЬ», «ФАЙЛ» И «НАГРУЖЕННОЕ ДЕРЕВО»»

Цель работы: исследовать и изучить АТД «словарь», «файл» и «нагруженное дерево».

Задача работы: овладеть навыками составления структур АТД «словарь», «файл», «нагруженное дерево» и написания программ по исследованию этих структур на любом языке программирования.

Порядок работы:

1. изучить описание лабораторной работы;

2. по заданию, данному преподавателем, разработать одну из структур: АТД «словарь», «файл» или «нагруженное дерево»;

3. написать программу;

4. отладить программу;

5. решить задачу;

6. оформить отчет.

Краткая теория


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: