Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 14.01.2020
Сообщений: 7
1

Подсчёт элементов в бинарном дереве поиска

08.04.2022, 08:57. Показов 270. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Требуется подсчитать количество элементов. Словарь из 200000 слов, но выдаёт 197345.

Создаю бинарное дерево
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
FILE *data_average;
    data_average = fopen("list.txt", "r");
 
    char *words = malloc(200000 * 30);
    for (int i = 0; i < 200000; i++) {
        fscanf(data_average, "%s", words + 30*i);
    }
    fclose(data_average);
    int k = 0;
 
    bstree *tree_av = bstree_create(words, 0);
    for (int i = 2; i < 200000; i++) {
        bstree_add(tree_av, words + 30*(i - 1), i - 1);
    }
    count(tree_av, &k);
    printf("%d\n", k);
Обхожу его
C
1
2
3
4
5
6
7
8
void count(bstree *tree, int *k)
{
    if (tree != NULL) {
        count(tree->left, k);
        (*k)++;
        count(tree->right, k);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2022, 08:57
Ответы с готовыми решениями:

Нахождение следующего и предыдущего элемента в бинарном дереве поиска
Нужны 2 ф-ции: нахождение следующего и предыдущего элемента в дереве. Вот мой код. Помогите...

Поиск максимального и минимального элемента в бинарном дереве поиска
Написать рекурсивный алгоритм поиска максимального и минимального элемента в бинарном дереве поиска

Могут ли быть в бинарном дереве поиска элементы с одинаковыми ключами?
Могут ли быть в дереве элементы с одинаковыми ключами? Если да, то в какую ветку они пойдут - левую...

Реализовать добавление и поиск элементов бинарном дереве поиска
Доброго времени суток . Задание по лабе - Реализовать добавление и поиск элементов бинарном дереве...

Исследование эффективности поиска элементов в бинарном дереве.Набросала код, но до конца не получается довести
struct bstree { int key; char *value; struct bstree *l; struct bstree *r; }; struct...

2
Модератор
Эксперт функциональных языков программированияЭксперт Python
37331 / 20763 / 4275
Регистрация: 12.02.2012
Сообщений: 34,168
Записей в блоге: 14
08.04.2022, 10:25 2
Реализации нет, данных нет. Ты думаешь, кто-то откликнется?
0
383 / 280 / 112
Регистрация: 28.04.2015
Сообщений: 1,716
08.04.2022, 14:38 3
о возможных проблемах:
1. точно в функции вставки ДУБЛИКАТЫ вставляются
2. зачем тебе вспомогательный буфер words, когда слова можно СРАЗУ грузить в дерево при считывании: слово считал - добавил в дерево -> no problems...
3. кол-во маг.чисел зашкаливает...

касательно получения кол-ва узлов (повезло тебе, что все узлы надо посчитать, а, например, не только листья или неполные, или полные узлы)

я б написал так:
C
1
2
3
4
5
6
size_t Get_count_nodes( const bstree* const tree)
{
     if( tree == NULL )
            return 0;
     return ( Get_count_nodes( tree -> left) + Get_count_nodes( tree -> right) + 1 );
}
наверное, сработало бы...

Цитата Сообщение от Catstail Посмотреть сообщение
Реализации нет, данных нет. Ты думаешь, кто-то откликнется?
деревья интересная тема
0
08.04.2022, 14:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2022, 14:38
Помогаю со студенческими работами здесь

Двоичное дерево поиска: подсчет количества элементов в дереве
Помогите написать программу. Описать структуры данных, процедуры и функции, необходимые для работы...

Подсчет узлов в бинарном дереве
Здравствуйте, помогите пожалуйста написать функцию, которая считает количество узлов в бинарном...

Подсчет вершин в бинарном дереве
Здравствуйте,помогите написать функцию ,которая подсчитывает число вершин на N-ом уровне бинарного...

Рекурсия в бинарном дереве поиска
public boolean add(E e) { if(this.root == null) { this.root = new Node(e, null) ; return...

Удаление в бинарном дереве поиска
При тестах ломается вроде только когда удаляю элемент у которого два потомка, которые являются...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru