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

Бинарное дерево - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить программу, которая подсчитывает количество слов в тексте, которые начинаются с гласной буквы http://www.cyberforum.ru/cpp-beginners/thread746296.html
2. С клавиатуры вводится строка. Составить программу, которая подсчитывает количество слов в тексте, которые начинаются с гласной буквы; выводит на экран все слова содержащие нечетное количество согласных букв, удаляет все числа из текста. Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема. Правила форума
C++ В одномерном массиве найти минимальный по модулю элемент массива, сумму модулей элементов массива, расположенных после первого элемента равного нулю. 1. В одномерном массиве состоящий из N целых элементов, вычислить: - минимальный по модулю элемент массива; - сумму модулей элемента массива, расположенных после первого элемента равного нулю. Превратить массив таким образом, чтобы в первой половине располагались элементы стоящие на четных позициях, а во второй половине - элементы стоящие в нечетных позициях Запрещено создавать темы с... http://www.cyberforum.ru/cpp-beginners/thread746288.html
Request member non-class type… C++
Есть описанный класс: class family:public father, public mother, public child { private: int family_member; father otec; mother mama; child *rebenok; public: //konstruktory
C++ Дан непустой текст из прописных букв, за которым следует точка.Определите, упорядочены ли эти буквы по алфавиту
Дан непустой текст из прописных букв, за которым следует точка.Определите, упорядочены ли эти буквы по алфавиту. Помогите решить плс!
C++ числа-близнецы http://www.cyberforum.ru/cpp-beginners/thread746282.html
#include<stdio.h> #include<stdlib.h> #include<math.h> #include<conio.h> int main() { int i=0,k=0,n,q=0; printf("vvedite n\n"); scanf("%d",&n); q=100;
C++ Используя рекурсию, найти все четные числа из заданного набора целых чисел Помогите пожалуйста решить следующую задачу :) Используя рекурсию, найти все четные числа из заданного набора целых чисел. Массив не объявлять. Добавлено через 19 минут плллззз подробнее

Показать сообщение отдельно
amarok12
Сообщений: n/a
26.12.2012, 00:32     Бинарное дерево
Создать бинарное дерево и определить количество узлов на пути от корня к узлу, значение которого введено с клавиатуры. Если таких узлов несколько, выбрать любой из них.

Сделал только поиск узла.
Помогите определить количество узлов на пути от корня к узлу.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <conio.h>
#define n 8
 
using namespace std;
struct tree {
       int data;
       struct tree *left; 
       struct tree *right;
};
 
struct tree *root;  
struct tree *find(int value);
struct tree *build_tree(struct tree *root,struct tree *r, int data); 
void print_tree(struct tree *root, int l);
 
int main(void) 
{
  root = NULL; 
  struct tree *node;
  int i,g,a[n]={5,3,2,4,1,6,7,8};
  for(i=0;i<n;i++)  
   { 
       root = build_tree(root, root, a[i]);
      } 
  cout<<"Binary tree:"<<endl<<endl;
  print_tree(root, 0); 
  cout<<endl<<"Enter the number: ";
  cin>>g;
  if((node=find(g))!=NULL)
     {
                          cout<<"Yes";
                          }
    else 
    {
         cout<<"NO";
          }
  root=NULL;
  getch();
}
 
 
 
  struct tree *build_tree(struct tree *root,struct tree *r,int data) 
  {
    if ( !r) 
    {
     r= (struct tree *) malloc(sizeof(struct tree));
     r->left = NULL; 
     r->right = NULL; 
     r->data = data;
     if(!root) 
        return r;  
     if(data < root->data) 
        root->left = r; 
     else 
        root->right = r;
     return r;
     }
     if(data < r->data)
         build_tree(r, r->left, data); 
     else
         build_tree(r, r->right, data);
     return root;
 }
 
void print_tree(struct tree *r, int l)
 {
   int  i;
   if (!r) return;
   print_tree(r->right, l+2); 
   for(i=0; i<l; ++i) 
   cout<<"    ";
   cout<<r->data<<endl<<endl; 
   print_tree(r->left, l+2);
 }
struct tree *find(int value)
  {
         struct tree *pnode=root;
         while(pnode!=NULL)
           {
               if(pnode->data==value) return pnode;
                else if(pnode->data>value)  
                   pnode=pnode->left;
                 else 
                   pnode=pnode->right;
             }
        return NULL;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru