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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2019, 15:58   #11
Bonttpol
 
Регистрация: 26.02.2019
Сообщений: 7
По умолчанию

Как-то так. Только компилятор ругается на добавление нового элемента в массив. И есть проблема с корнем дерева, т.к. он не подходит для внедрения в vector<array<node,2>>.
Код:
#include "pch.h"
#include <iostream>
#include <vector>
#include <array>

using namespace std;

struct  node
{
	double info;
	node *l;
	node *r;
	node *root;
};

void push(int a, node **t, vector <array<node*, 2 >> sun_list)
{
	if ((*t) == NULL)
	{
		(*t) = new node;
		(*t)->info = a;
		(*t)->l = (*t)->r = NULL;
		sun_list.push_back(&(*t)->l, &(*t)->r);
		return;
	}
	if (a > (*t)->info) push(a, &(*t)->r, sun_list);
	else push(a, &(*t)->l, sun_list);
}

int main()
{
	setlocale(LC_ALL, "");
	vector <array<node*, 2 >> sun_list;
	int n;
	int count;
	node *tree;

	cout << "введите количество элементов  ";
	cin >> count;

	for (int i = 0; i < count; ++i)
	{
		cout << "ведите число  ";
		cin >> n;                       
		push(n, &tree, sun_list);                 
	}

}
Bonttpol вне форума Ответить с цитированием
Старый 27.02.2019, 16:18   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы картинку по своей ссылки смотрели?
Там же просто в каждом элементе список потомков вместо r, l.
Цитата:
Сообщение от Bonttpol Посмотреть сообщение
sun
sun это солнце, а вместо son лучше children.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.02.2019, 16:21   #13
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Что вы делаете? Зачем вам две структуры для дерева? Зачем вам указатели на поддеревья?
Вы же видели картинку по ссылке? ВЫ же осознаете, что вектор и есть header там? Вы же видели на картинке и читали, что в header добавляются все вершины без всяких условий?
p51x вне форума Ответить с цитированием
Старый 27.02.2019, 17:13   #14
Bonttpol
 
Регистрация: 26.02.2019
Сообщений: 7
По умолчанию

А вот это что такое в коде из ссылки? И что именно надо писать в {}?
Код:
LIST = { соответствующее определение для списка узлов };
position = {соответствующее определение позиций в списках);
Я попыталась переписать структуру на С++, но пока получилось только это и я не уверена что это правильная организация:
Код:
struct node
{
	int key;
	vector<array<node, 2>> header;
	array<node, 2> labels;
	node *root;
};

Последний раз редактировалось Bonttpol; 28.02.2019 в 09:05.
Bonttpol вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация бинарного дерева на C# NastyaShuvalova C# (си шарп) 0 25.02.2014 19:24
Реализация дерева +XML mdekalka Общие вопросы .NET 0 30.11.2012 02:04
Реализация дерева на HTML mimm HTML и CSS 3 19.10.2012 08:52
Реализация Б-дерева VB Army Помощь студентам 3 19.06.2011 14:47
Бинарное дерева поиска lebrosha Помощь студентам 7 23.05.2009 15:27