Форум программистов, компьютерный форум CyberForum.ru

Обход произвольного дерева - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск http://www.cyberforum.ru/cpp-beginners/thread39428.html
Вечер добрый. Подскажите максимально быстрый способ поиска, меня больше интересует не сама реализация а способ, так сказать или алгоритм.. Есть список ключ - значение. и ключ и значение строковые переменные. например 354321-фывалорфыдва 13-флыврадфыв 8735187351-флыврдафыв ...
C++ Заполнить матрицу линейной последовательностью (0-81), от левого верхнего угла по диагонали: вправо - вверх Помогите пожалуйста написать программу: Заполнить матрицу линейной последовательностью (1-81), от левого верхнего угла по диагонали: вправо - вверх? в соответствиb с рисунком http://s40.***********/i088/0906/78/08a04dbff187t.jpg http://www.cyberforum.ru/cpp-beginners/thread39426.html
телефонный справочник C++
Создать телефонный справочник, т.е. файл из записей с полями: ФИО, адрес (запись из 3 полей : улица, номер дома, квартиры) и номер телефона. Найти номер АТС (первые 2 цифры номера телефона), имеющей наибольшее число абонентов. Отсортировать по фамилиям. у кого нить что нить подобное имеется???
C++ Помогите пжл новичку написать прогу
Нужно найти общие слова в 2-х предложениях
C++ Е и е, + и - http://www.cyberforum.ru/cpp-beginners/thread39420.html
Вводится строка символов, в которой могут встречаться пробелы, цифр буквы 'E' и 'e', знаки '+' и '-'. Известно, что первый символ отличён от пробела. Из данной строки подстройку сиволов, предшедствующих первому ?пробелу. Требуется определить, является ли эта подстрока числом (в смысле Паскаля). Если да, то выяснить: целое или вещество. число, (+)-е или (-)-е. Помогите в С++ сделать ,...
C++ Каково будет условие вывода на экран простого числа( оно делится только на 1 и на себя) Каково будет условие вывода на экран простого числа( оно делится только на 1 и на себя) Есть вот это(точно не знаю, верна ли она), она НЕ выводит 3 и 7. #include <math.h> #include <iostream.h> #include <conio.h> void main(void) {int i,d,n,sum=0; for(i=1;i<=500;i++){ if ((i%2!=0)&&(i%3!=0)&&(i%5!=0)&&(i%7!=0)) подробнее

Показать сообщение отдельно
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295

Обход произвольного дерева - C++

10.06.2009, 22:43. Просмотров 5240. Ответов 7
Метки (Все метки)

C++
1
2
3
4
5
struct tree {
  char info;
  struct tree *left;
  struct tree *right;
};
так, вопрос глупый -меня просто сомнения берут. вот смотрите, если обход бинарного дерева в симметричном порядке у нас функция процедура такая делает:
C++
1
2
3
4
5
6
7
8
void inorder(struct tree *root)
{
  if(!root) return;
 
  inorder(root->left);
  if(root->info) printf("%c ", root->info);
  inorder(root->right);
}
а если дерево не бинарное,а 100-арное (т.е. у каждого элемента кроме листа не 2 а 100 потомков), то функция становиться такая??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void inorder(struct tree *root)
{
  if(!root) return;
 
  inorder(root->el_1);
  if(root->info) printf("%c ", root->info);
  inorder(root->el_2);
  if(root->info) printf("%c ", root->info);
  inorder(root->el_3);
 
 
 //и так до...
 
  if(root->info) printf("%c ", root->info);
  inorder(root->el_100);
}
получается так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru