Вот код:
Код: Выделить всё
class Node {
public:
int a;
char c;
Node *left, *right;
};
int main()
{
string s;
ifstream f;
f.open("1.txt");
ofstream g;
g.open ("2.bin");
map <char, int> m; //тут символ и сколько раз он использован
while (!f.eof()) //считываем символы в файле
{
char c;
c=f.get();
m[c]++; //в map записываем букву и map увеличивает на 1. То есть считаем буквы в тексте.
}
map <char, int>::iterator itr; //итератор на map
list<Node*> t; //лист с типом класса
for (itr=m.begin(); itr!=m.end(); itr++) //считываем с map и записываем в лист.
{
Node *p=new Node;
p->c=itr->first; //указатель на букву
p->a=itr->second; //указатель на число, то есть сколько раз буква встречается.
t.push_back(p); //запись в лист
}
list<Node*>::iterator iii;
for (iii=t.begin(); iii!=t.end(); iii++)
{
cout<<*iii;
}