Есть вот такая вот программа которая входящие данные забивает в бинарное дерево, а потом считает количество обращений к элементам. Нужно после выведения массива отсортированного по алфавиту вывести массив отсортированный по количеству обращений к элементам. Как это можно сделать? Нужно создавать отдельный массив, забивать элементами бинарного дерева и его уже сортировать или есть еще варианты как это можно сделать?
#include <iostream>
#include <string>
using namespace std;
struct Node
{
int count;
char str1[32];
char str2[32];
Node *r, *l;
};
void show(Node *&Tree)
{
if (Tree != NULL)
{
show(Tree->l);
cout << Tree->count<<" " << Tree->str1<<" "<<Tree->str2<<endl;
show(Tree->r);
}
}
void addNode(char* x,char* y,Node *&MyTree)
{
if (NULL==MyTree)
{
MyTree = new Node;
strcpy_s(MyTree->str1, x);
strcpy_s(MyTree->str2, y);
MyTree->count = 0;
MyTree->l = MyTree->r = NULL;
}
if (MyTree != NULL){
int k = strcmp(x, MyTree->str1);
if (k < 0)
{
if (MyTree->l != NULL) addNode(x, y, MyTree->l);
else
{
MyTree->l = new Node;
MyTree->l->l = MyTree->l->r = NULL;
strcpy_s(MyTree->l->str1, x);
strcpy_s(MyTree->l->str2, y);
MyTree->l->count = 0;
}
}
if (k > 0)
{
if (MyTree->r != NULL) addNode(x, y, MyTree->r);
else
{
MyTree->r = new Node;
MyTree->r->l = MyTree->r->r = NULL;
strcpy_s(MyTree->r->str1, x);
strcpy_s(MyTree->r->str2, y);
MyTree->r->count = 0;
}
}
}
}
void count(char* x,Node *&MyTree)
{
int k = strcmp(x, MyTree->str1);
if (k == 0)
{
MyTree->count += 1;
}
else
{
if (k<0)
{
count(x, MyTree->l);
}
if (k>0)
{
count(x, MyTree->r);
}
}
}
void sort(Node *&Tree)
{
}
int main()
{
Node *Tree = NULL;
char x[32];
char y[32];
while (x != "yyy")
{
cin >> x;
if (strcmp(x, "yyy") == 0)break;
cin >> y;
addNode(x, y, Tree);
}
while (x != "yyy")
{
cin >> x;
if (strcmp(x, "yyy") == 0)break;
count(x, Tree);
}
show(Tree);
cout << endl;
system("pause");
return 0;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Есть в котором встречаются <i> и </i>Заменить каждое вхождение <i> на <курсив>, а каждое вхождение </i> на <конец курсив>
Программа запрашивает у пользователя шестизначное числоВывести на экран, соблюдал ли он правила
(index):22 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experienceFor more help, check https://xhr