Задать вопрос
@mashacppjun

Бинарное дерево. Как посчитать сумму?

Привет, студентка, прошу помощи в реализации задачи, потратила кучу времени, чтобы получилось рабочее дерево, но как дописать додуматься не могу(( Задача. Реализовать бинарное дерево, каждому ребру которого соответствует целое число (вес). Необходимо рассчитать суммарный вес ребер пути, идущего из корня в заданный лист дерева.
Прошу вашей помощи, в программировании я новичек. Буду очень признательна, если допишите функцию к существующей программе, а то мне немного сложновато пока понимать чужой код т.к. уровень ещё слишком мал, но я учусь) Заранее спасибо всем помощникам)))
#include "stdafx.h"
#include <iostream>

using namespace std;

struct Node
{
	int cell;
	Node *left, *right;
};

void add_node(int node, Node *&Tree){
	if (Tree == NULL){
		Tree = new Node;
		Tree->cell = node;
		Tree->left = NULL;
		Tree->right = NULL;
	}
	if (node < Tree->cell){
		add_node(node, Tree->left);
	}
	if (node > Tree->cell){
		add_node(node, Tree->right);
	}
}

void printTree(Node *Tree)
{
	if (!Tree)
		return;
	printf("%d", Tree->cell);
	//printTree(Tree->left);
	printTree(Tree->right);
}



int main()
{
	Node *Tree = NULL;
	printf("enter count elements: ");
	int count;//кол-во эл
	scanf_s("%i", &count);
	int InputNum;//числа
	for (int i = 0; i < count; i++)
		cin >> InputNum,
		add_node(InputNum, Tree);

	printTree(Tree);


	system("pause");
	return 0;
}
  • Вопрос задан
  • 874 просмотра
Подписаться 2 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@mamkaololosha
struct Node
{
  int cell;
  Node *left, *right;
};

Где здесь вес перехода в эту Node? Суммируете и всё.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы