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

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

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

Англо-русский словарь построен как дерево - C++

28.04.2013, 14:33. Просмотров 498. Ответов 0
Метки нет (Все метки)

Англо-русский словарь построен как дерево. Каждая компонента содержит английское слово, соответствующее ему русское слово и счетчик количества обращений к данной компоненте. Первоначально дерево формируется согласно английскому алфавиту. В процессе эксплуатации словаря при каждом обращении к компоненте в счетчик обраще¬ний добавляется единица.
Составить программу, которая:
• обеспечивает начальный ввод словаря с конкретными значениями счетчиков обращений;
• формирует новое представление словаря в виде дерева по следую¬щему алгоритму: а) в старом словаре ищется компонента с наибольшим зна¬чением счетчика обращений; б) найденная компонента заносится в новый словарь и удаляется из старого; в) переход к п. а) до исчерпания исходного словаря;
• производит вывод исходного и нового словарей.
Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе. Исходные данные могут вводиться как из файла, так из диалога

Не могу записать слова в дерево. Для одного символа работает. Помогите исправить для слов.

C++ (Qt)
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
#include <iostream.h>
#include <string.h>
struct tree {
  
  char eng;
  char rus;
  int n;
  struct tree *left;
  struct tree *right;
};
 
struct tree *stree(struct tree *root,struct tree *r,char eng, char rus)
{
  if(!r) {
    r = (struct tree *) malloc(sizeof(struct tree));
    if(!r) {
      printf("Не хватает памяти\n");
      exit(0);
    }
    r->left = NULL;
    r->right = NULL;
    r->eng = eng;
    r->rus = rus;
    r->n = 0;
    if(!root) return r; 
    if(eng < root->eng) root->left = r;
    else root->right = r;
    return r;
  }
  if(eng < r->eng)
    stree(r,r->left,eng,rus);
  else
    stree(r,r->right,eng,rus);
 
  return root; 
}
 
void inorder(struct tree *root)
{
  if(!root) return;
 
  inorder(root->left);
  if(root->eng) printf("%c ", root->eng);cout<<" - ";  printf ("%c ", root->rus);cout<<" ["; cout<<root->n; cout<<"] ";cout<<endl;
  inorder(root->right);
}
 
int main()
{tree *root=NULL;
int n,k; char a,b;
cout<<"vvedite col el= ";
cin>>n;
 
for (int i=0; i<n; i++)
{cout<<"vvedite = "; cin>>a; cout<<"vvedite rus = "; cin>>b; root=stree(root,root,a,b); }
cout<<endl<<"derevo: "<<endl;
 inorder(root);
cin>>n;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 14:33     Англо-русский словарь построен как дерево
Посмотрите здесь:

Класс «англо – русский словарь» - C++
Определите класс «англо – русский словарь». Словарь состоит из различных слов английского языка, упорядоченных по алфавиту. Прописные и...

Работа с файлом, который содержит англо-русский текст - C++
Добрый день! Уважаемые эксперты, помогите с такой задачей: в текстом файле первое идет английское слово, далее если стоит пробел и...

Правильно ли построен класс - C++
STRUCT.cpp #include &quot;STRUCT.h&quot; STRUCT::STRUCT() { clrscr(); printf(&quot; Введите количество спортсменов: &quot;); scanf(&quot;%d&quot;,...

Как добавить русский язык? - C++
Как добавить русский язык?Условие задачи такое:Дана строка. Преобразовать в ней все строчные буквы(как латинские, так и русские) в...

Как настроить русский шрифт - C++
Здравствуйте, подскажите пожалуйста, как настроить отображение русских букв:

Как выводить русский текст? - C++
помогите кто нибудь с выводом русского текста в этой программе пытался воспользоваться решениями с форума, но видимо я конченый дегенерат...

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

Русский шрифт вводится, как попало - C++
Русский шрифт вводится как попало

Как в string использовать русский язык? - C++
как в string использовать русский язык, setlocale не помогает ...

Как передать в функцию русский текст - C++
Есть такие функции Append ( const uint16 * aText,int32 aLength = -1 ) Append ( const char * aText,int32 aLength = -1,int32...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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