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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
linuxubuntu
3 / 3 / 0
Регистрация: 06.11.2011
Сообщений: 55
#1

Поиск по случайному деререву - C++

25.11.2012, 00:12. Просмотров 347. Ответов 4
Метки нет (Все метки)

Написать программу поиска по случайному дереву при обратном порядке обхода его. Дерево представлено с помощью массива.
Если можно, то с комментариями.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 00:12     Поиск по случайному деререву
Посмотрите здесь:

C++ Поиск. Последовательный поиск
C++ Поиск. Бинарный поиск
Поиск циклов в графе. Поиск центра взвешенного графа C++
C++ Поиск символа не могу переделать под поиск сочетания символов
Поиск пикселя и поиск изображения на экране C++
C++ Присвоение значения случайному элементу массива
C++ Расписать процедуру высчитывания ближайшего числа к случайному

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
25.11.2012, 01:50     Поиск по случайному деререву #2
Случайное дерево предоставляется в качестве целочисленного массива? А обратный порядок обхода имеется ввиду поиск с конца, так что-ли?
linuxubuntu
3 / 3 / 0
Регистрация: 06.11.2011
Сообщений: 55
25.11.2012, 04:26  [ТС]     Поиск по случайному деререву #3
xtorne21st, да именно так
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
25.11.2012, 06:28     Поиск по случайному деререву #4
Не понял задачу.
Дерево можно представить в виде структуры
C++
1
2
3
4
5
struct a
{
struct a* left;
struct a* right;
};
и эту структуру можно обходить слева направо и справа налево.
Можно записать в дерево массив при обходе.

Обход осуществляется рекурсивными вызовами:
C++
1
2
3
4
5
6
7
void f(struct a* top)
{
if ( a->left != NULL)
 f(a->left);
if (a->right != NULL)
 f(a->right);
}
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
26.11.2012, 00:18     Поиск по случайному деререву #5
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
// поиска искомого значение с "конца" массива
// при помощи итеративного цикла
#include <stdio.h>
#include <stdlib.h>
 
int main( void )
{
    size_t size;
    int i, val;
    
    printf( "Введите величину целоцисленного массива: " );
    scanf( "%d", &size );
    printf( "Теперь массив сосотит из %d элементов\n"
        "и вот его значения:\n", size );
    int arr[size];
    
    for( i = 0; i < size; ++i ) {
    arr[i] = rand() % 100; // заплним целочисленными значениями до 100
    printf( "%d ", arr[i] );
    }
    puts( "\0" );
 
    printf( "Введите значение для поиска: " );
    scanf( "%d", &val );
 
    // найдём значение при помощи индексирования
    for( i = size - 1; i >= 0; --i ) {
    if( arr[i] == val ) {
        printf( "Искомое значение %d содержится в %d ячейке\n", val, i );
        break;
    }
    else if( i == 0 )
        printf( "Значение %d не найдено\n", val );
    }
        
    return 0;
}
Yandex
Объявления
26.11.2012, 00:18     Поиск по случайному деререву
Ответ Создать тему
Опции темы

Текущее время: 11:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru