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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 19:29   #1
trum
Пользователь
 
Регистрация: 20.03.2012
Сообщений: 25
По умолчанию Нужно прокомментировать небольшую программу

Деревья:
Напишите программу, содержащую процедуру, которая каждый отрицательный элемент дерева заменяет на положительный, а положительный превращает в ноль.

КОД

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

struct tree {
  int info;
  struct tree *left;
  struct tree *right;
};
struct tree *root; /* начальная вершина дерева */
struct tree *stree(struct tree *root,struct tree *r,int info)
{
  	if(!r) 
{
    		r = (struct tree *) malloc(sizeof(struct tree));
    		r->left = NULL;
    		r->right = NULL;
    		r->info = info;
    		if(!root) return r; /* первый вход */
    		if(info < root->info) root->left = r;
    		else root->right = r;
    			return r;
  	}
  	if(info < r->info)
    		stree(r, r->left, info);
  	else
    		stree(r, r->right, info);
  	return root;
}
void inorder(struct tree *root)
{
  	if(!root) return;
  	inorder(root->left);
  	printf("%d ", root->info);
  	inorder(root->right);
}

void poisk (struct tree *root)
{
  	if (!root) return;
  	if (root->left) poisk(root->left);
  	if (root->info<0)
       	root->info*=-1;
   	else root->info=0;
  	if (root->right) poisk(root->right);
}
void main()
{
  	int i,s;
  	root = NULL;  /* инициализация корня дерева */

  	for (i=0; i<6; i++)
   	{
    		printf("Vvedite dannye: ");
    		scanf("%d",&s);
    		root = stree(root, root, s);
   	}
  	inorder(root);
  	printf("\n\n");
  	poisk(root);
  	inorder(root);
  	getch();
}

Последний раз редактировалось ACE Valery; 07.06.2012 в 19:50.
trum вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно решить небольшую задачку Henry_ Фриланс 2 07.12.2011 13:22
Нужно написать небольшую программу neomax38 Фриланс 4 04.10.2011 20:50
Нужно написать в питоне небольшую программку! TeNdErGiRl Помощь студентам 0 03.10.2010 19:53
Нужно написать небольшую программку shuraa Фриланс 3 18.02.2008 00:42
Нужно полностью прокомментировать каждую строчку решеннной задач на С++, помогите, плиз!!!! Fialaka_444 Помощь студентам 1 22.12.2007 19:30