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

Trie дерево, реализовать вставку - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести предложения в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread1240826.html
Файлы. Помогите, пожалуйста. Нужно написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке. Я понимаю алгоритм и в принципе выполнение задачи, но у меня одна крошечная загвоздка: «в обратном порядке». Мне кажется, что необходимо рассматривать файл с конца (впрочем, быть может есть какой-то другой способ), но я никак не могу в этот самый...
C++ Обрезка заданной строки в файле с обеих сторон Добрый день. Нужно обрезать текстовый файл, при этом известен текст слева и справа от нужного, но не сам нужный. string input; string start = "<div data-lobc=\"0\" id=\"", finish = "\" class=\"pm_thread new"; ifstream f("file.txt"); getline(f, input); // Читаем весь файл целиком input.erase(0, input.find(start) + start.length()); // Стираем все от начала до начального слова + само начальное... http://www.cyberforum.ru/cpp-beginners/thread1240824.html
Управление значком программы в панели пуск C++
Здравствуйте, подскажите как можно сделать управление программой с помощью значка в панели пуск. Например, простейшее, при клике по значку программы, срабатывает Hide(); Или чтоб можно было создать собственное подменю при нажатии правой кнопкой по этому же значку (например как в программе QIP). Среда Rad Studio, язык С++.
GCC, кириллица в консоле C++
Есть код на языке C++. Я его компилирую в win7 через cmd с помощью команды g++. Компилятор установлен с помощью MiniGW. После компиляции получается программа. Когда я ее запуска, то кириллица криво отображается. Когда компилирую с помощью VS, то все нормально. Строчка setlocale(LC_ALL, "Russian"); в коде есть.
C++ Подскажите функции, которые вставляют подстроку в определенное место файла http://www.cyberforum.ru/cpp-beginners/thread1240812.html
Помогите пожалуйста, необходимо подключится к файл на диске с исходным кодом на pascal и заменить там одну переменную (программно). Файл я подключил но не знаю как найти подстроку и как ее заменить. Подскажите функции которые вставляет подстроку в строку в определенный участок и находим этот участок.
C++ Если выделение памяти для динамического массива задать void-функцией, можно ли будет оперировать с ним в main? Если выделение памяти для дин.массива задать void-функцией, можно ли будет оперировать с ним в main или придётся отдельно выделять память в main? подробнее

Показать сообщение отдельно
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
10.08.2014, 19:47     Trie дерево, реализовать вставку
вообщем в алгоритмах я не силён...
накидал код, знаю что он уродлив и не работает (я несколько раз переписывал add() поэтому там есть непонятные лишние вещи - там каша...)
необходимо реализовать вставку в дерево, само дерево описано вот так
http://habrahabr.ru/post/111874/

вообщем мб подскажет кто, я уже просто запутался, мб завтра на свежую голову разберусь

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
90
91
92
93
94
95
96
97
98
99
100
101
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cstring>
using namespace std;
 
template<class T>
class tree{
    public:
    struct node
        {
        T data;             // данные узла
        char key;           // ключ текущего узла
        node *childList;    // массив листьев текущего узла
        int size;           // кол-во узлов в узле
        };
    node head;
    tree(char c,T d)        // конструктор дерева
        {
        head.size=0;
        head.data=d;
        head.key=c;
        cout<<"new tree is created"<<endl;
        cout<<"key = "<<head.key<<endl;
        cout<<"data = "<<head.data<<endl;
        };
 
    void add(char k, char *c);// к - ключ нового узла, *с - "путь" до него
    void show();
};
template<class T>
void tree<T>::show()
    {
    }
 
template<class T>
void tree<T>::add(char k, char *c)// к - ключ нового узла, *с - "путь" до него
    {
 
    int counter=0,i=0;                  // уровень глубины ключа
    bool flag=true;                       // конец ключа
    node *temp=&head;               // начало дерева
    node *temp2;
 
        if(c[counter]==temp->key)
            {
            counter++;
 
         if (counter==strlen(c)-1)                   // если достигли конец ключа, то создаем нвоый узел, записываем в него данные и выходим
                {
                cout<<"end of tree"<<endl;
                flag=false;
                temp->size++;
                temp->childList=new node[temp->size];
                temp=&(temp->childList[temp->size-1]);
                temp->key=k;
                temp->childList=0;
                temp->size=0;
                }
            else
                {
                temp2=&temp->childList[i];
                cout<<"temp2->key = "<<temp2->key<<endl;
                cout<<"c[counter] = "<<c[counter]<<endl;
                cout<<"strlen(c)-1 = "<<strlen(c)-1<<endl;
                cout<<"counter = "<<counter<<endl;
                }
            if(c[counter]==temp2->key)
                {
                cout<<"asd"<<endl;
                temp=&(temp->childList[i]);
                counter++;
                }
            else
                {
                i++;
                }
 
        }
    }
 
int main()
{
    srand(time(0));
    char c;
    cout<<"cin key :";
    cin>>c;
    tree<int> a(c,rand()%20);
    cin>>c;
    char d[1]={'r'};
    a.add(c,d);
    cin>>c;
    char dd[3]={'r','a','\0'};
 
    a.add(c,dd);
    cin>>c;
    char ddd[4]={'r','a','z','\0'};
 
    a.add(c,ddd);
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru