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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2017, 10:28   #1
laketych
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 37
По умолчанию Не знаю как правильно нарисовать блок-схему функции.

Код:
#include <stdio.h>
#include <stdlib.h>

struct TreeNode {
	int value;
	struct TreeNode* left;
	struct TreeNode* right;
};

void *insert(struct TreeNode* , int );
void inOrder(struct TreeNode *);
void preOrder(struct TreeNode *);
void postOrder(struct TreeNode *);
int minimal(struct TreeNode *);

int main()
{
	struct TreeNode *root = NULL;

	int number, value, i;

	printf("How many data's do you want to insert: ");
	scanf_s("%d", &number);

	for (i = 0; i < number; i++) {
		printf("Data %d: ", i + 1);
		scanf_s("%d", &value);
		root = insert(root, value);
	}

	printf("\n");

	printf("Inorder Traversal: ");
	inOrder(root);
	printf("\n");

	printf("Preorder Traversal: ");
	preOrder(root);
	printf("\n");

	printf("Postorder Traversal: ");
	postOrder(root);
	printf("\n");

	printf("\n");

	return 0;
}

void *insert(struct TreeNode* rootPtr, int data) {
	if (rootPtr == NULL)
	{
		rootPtr = (struct TreeNode *)malloc(sizeof(struct TreeNode));
		rootPtr->value = data;
		rootPtr->left = NULL;
		rootPtr->right = NULL;
	}
	else if (data < rootPtr->value) {
		rootPtr->left = insert(rootPtr->left, data);
	}
	else {
		rootPtr->right = insert(rootPtr->right, data);
	}
	return rootPtr;

}

void inOrder(struct TreeNode* rootPtr)
{
	if (rootPtr != NULL) {
		inOrder(rootPtr->left);
		printf("%d ", rootPtr->value);
		inOrder(rootPtr->right);
	}
}

void preOrder(struct TreeNode* rootPtr)
{
	if (rootPtr != NULL) {
		printf("%d ", rootPtr->value);
		preOrder(rootPtr->left);
		preOrder(rootPtr->right);
	}
}

void postOrder(struct TreeNode* rootPtr)
{
	if (rootPtr != NULL) {
		postOrder(rootPtr->left);
		postOrder(rootPtr->right);
		printf("%d ", rootPtr->value);

	}
}
Никак не могу нарисовать нормально блок-схему к функции *insert:
Код:
void *insert(struct TreeNode* rootPtr, int data) {
	if (rootPtr == NULL)
	{
		rootPtr = (struct TreeNode *)malloc(sizeof(struct TreeNode));
		rootPtr->value = data;
		rootPtr->left = NULL;
		rootPtr->right = NULL;
	}
	else if (data < rootPtr->value) {
		rootPtr->left = insert(rootPtr->left, data);
	}
	else {
		rootPtr->right = insert(rootPtr->right, data);
	}
	return rootPtr;

}
Изображения
Тип файла: jpg insrt.jpg (75.6 Кб, 119 просмотров)
laketych вне форума Ответить с цитированием
Старый 28.06.2017, 08:10   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Чтоб эта подпрограмма не торчала сама в себе ближайший миллиард лет (по блок-схеме), ее стоит отрихтовать приблизно так:
Делов-то...
Изображения
Тип файла: jpg Delov-to.JPG (46.3 Кб, 119 просмотров)
digitalis вне форума Ответить с цитированием
Старый 30.06.2017, 10:14   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Чтоб эта подпрограмма не торчала сама в себе ближайший миллиард лет (по блок-схеме), ее стоит отрихтовать приблизно так:
Делов-то...
И тишина...
digitalis вне форума Ответить с цитированием
Старый 30.06.2017, 15:32   #4
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 734
По умолчанию

Удалено. Все понял, разобрался.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.

Последний раз редактировалось Cuprum5; 30.06.2017 в 19:01.
Cuprum5 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[PascalABC] Как правильно составить блок-схему с рекурсией ? artems67 Помощь студентам 1 08.02.2017 23:32
нарисовать блок-схему Jalgas-xan Паскаль, Turbo Pascal, PascalABC.NET 1 15.02.2013 07:40
Нарисовать блок-схему Megastervochka Паскаль, Turbo Pascal, PascalABC.NET 0 20.05.2012 22:36
Не знаю как правильно сделать вызов функции Homutova_Julia Помощь студентам 14 07.06.2011 23:45
Нарисуйте пожалуйста блок-схему лёгкой задачки, не знаю как,очень нужно... prikolist Паскаль, Turbo Pascal, PascalABC.NET 2 28.11.2008 15:27