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

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

Войти
Регистрация
Восстановить пароль
 
rudeeeboy
14 / 14 / 1
Регистрация: 08.11.2010
Сообщений: 172
#1

Таблица перекрестных ссылок и бинарное дерево - C++

23.03.2012, 22:11. Просмотров 751. Ответов 1
Метки нет (Все метки)

Для хранения информации о ключевых словах некоторой программы имеется таблица перекрестных ссылок. Для каждого слова задан список номеров строк, где оно встречается, а для каждой строки - число образцов данного слова в строке. Ключевые слова расположены по алфавиту. Построить бинарное дерево для быстрого поиска ключевых слов. Составить программу определения общего количества вхождений заданного ключевого слова. Обеспечить корректировку дерева поиска для случая удаления ключевого слова из некоторой строки.


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
#include<iostream>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
using namespace std;
 
struct Node 
{
        int key;
        Node *right,*left;
};
 
typedef Node *KNode;
const int n=7;
KNode maketree(int mass[],int *from, int n);
void PrintTree (KNode tree, int r);
 
KNode maketree(int mass[],int *from, int n)
{
        KNode tree;
        if(n==0) return NULL;
        int nr,nl;
        tree=new Node;
        tree->key=mass[*from];
        (*from)++;
        nl=n/2;
        nr=n-nl-1;
        tree->left=maketree(mass,from,nl);
        tree->right=maketree(mass,from,nr);
        return tree;
}
 
void PrintTree (KNode tree, int r)
{
        if(tree!=NULL)
        {
            PrintTree(tree->right, r+5);
            for (int i=0; i < r ; i++)
                printf(" ");
            printf("%d\n",tree->key);
            PrintTree(tree->left, r+5);
        }
}    
int main()
{ 
        srand(time(NULL));
        int mass[n], i;
        for(int i=0;i<n*2;i++)
                mass[i]=0;
        for(int i=0;i<n*2;i++)
                mass[i]=4;//((rand()%9)+1)*10+rand()%10;
        /*for(int i=0;i<n;i++)
                for(int j=i+1;j<n;j++)
                        if(mass[i]=mass[j])
                        {
                        mass[j]=((rand()%9)+1)*1000+rand()%100;
                                j=i+1;
                        }*/
        mass[0]=1;
        mass[1]=4;
        mass[2]=6;
        mass[3]=2;
        mass[4]=4;
        mass[5]=5;
        mass[6]=8;            
        
        printf("Initial sequence\n");
        for(int i=0;i<n;i++)
                printf("%i ",mass[i]);
        printf("\n");
        KNode Tree1;
        i = 0;
        Tree1=maketree(mass,&i,n);
        PrintTree(Tree1,0);
        getch();
        //system("PAUSE");
}
я как понял надо добавить ещё структуру, в которой будет слово и номера строк, верно? и куда её добавить?(структуру) и осуществить поиск? спс
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2012, 22:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Таблица перекрестных ссылок и бинарное дерево (C++):

Таблица перекрестных ссылок - C++
На пальцах в двух словах объянсите пожалуйста, что означает слова в краце, дял представления для чего это все нужно, надо состваить...

Таблица перекрестных ссылок на основе использования динамических списков и деревьев - C++
Составить таблицу перекрестных ссылок. Программа читает текст и собирает все слова этого текста в дерево поиска, запоминая номера строк, в...

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

Напишите программу выдачи перекрестных ссылок - C++
Вот задание: Напишите программу выдачи перекрестных ссылок, т.е. программу, которая печатает список всех слов документа и для каждого из...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное дерево - C++
Доброго времени суток. Ребят, я не спец, требуется решить такую задачу: Написать нерекурсивную программу, печатающую все вершины...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rudeeeboy
14 / 14 / 1
Регистрация: 08.11.2010
Сообщений: 172
25.03.2012, 11:40  [ТС] #2
с добрым утром всех)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2012, 11:40
Привет! Вот еще темы с ответами:

Бинарное дерево - C++
Разработать и реализовать на языке С следующие функции работой с бинарным деревом: 1. Создание пустого дерева 2. Добавление элемента в...

Бинарное дерево - C++
Здравствуйте, нужно помощь в написании программы. Условие: Каждая вершина бинарного дерева содержит: - 2 указателя (на каждый...

Бинарное дерево - C++
Помогите исправить ошибку, компилятор ругается на 110 строку, не пойму почему( #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include...

Бинарное дерево - C++
Народ помогите. На С++ нада написать программу бинарного дерева Требования: 1. В программе должен быть шаблонный класс (template...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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