Автор Иван Ларин задал вопрос в разделе Другие языки и технологии
Помогите пожалуйста решить, С++ и получил лучший ответ
Ответ от Cyborg Terminator[гуру]
Вот набросал с использованием хэш-таблицы, а во избежание коллизий реализованы цепочки в виде односвязного списка.
#include <fstream>
#define NUM 128
struct cell {
int key;
cell* next;
};
bool insert_cell(cell* htab[NUM], int key);
void clear_cell(cell* htab[NUM]);
int main(void){
cell* htab[NUM] = {0};
std::ifstream fin("number.txt");
if(! fin.is_open())
return 1;
int num;
while(fin >> num){
insert_cell(htab, num);
}
fin.close();
//...
std::ofstream fout("output.txt");
for(int i = 0; i < NUM; ++i){
for(const cell* p = htab[i]; p != NULL; p = p->next)
fout << p->key << ' ';
}
fout.flush();
fout.close();
clear_cell(htab);
return 0;
}
//вставка в хэш-таблицу
bool insert_cell(cell* htab[NUM], int key){
int ikey = ((key < 0) ? ~key : key) % NUM;
for(const cell* p = htab[ikey]; p != NULL; p = p->next){
if(p->key == key)
return false;
}
cell* node = new cell();
if(node != NULL){
node->key = key;
node->next = htab[ikey];
htab[ikey] = node;
}
return (node != NULL);
}
//удаление всех ячеек хэш-таблицы
void clear_cell(cell* htab[NUM]){
cell* t;
for(int i = 0; i < NUM; ++i){
for(cell* p = htab[i]; p != NULL; ){
t = p;
p = p->next;
delete t;
}
}
}
#include <iostream> #include <fstream>#include <list>#include <algorithm>using namespace std;int main() { system("chcp 1251 > nul"); ifstream ifs("numbers.txt", ifstream::in); try { if (!ifs) throw runtime_error("numbers.txt"); int number; list<int> numbers; while (ifs >> number) numbers.push_back(number); ofstream ofs("unique.txt", ofstream::out); numbers.sort(); numbers.unique(); try { if (!ofs) throw runtime_error("unique.txt"); while (!numbers.empty()) { ofs << numbers.front(); numbers.pop_front(); if (!numbers.empty()) ofs << ' '; else ofs << '\n'; } ofs.close(); } catch (runtime_error const& e) { cerr << L" Ошибка: Не удаётся записать в файл " << e.what() << endl; ofs.close(); cin.sync(); cin.get(); return -2; } ifs.close(); } catch (runtime_error const& e) { cerr << "\a Ошибка: Не удалось открыть файл " << e.what() << endl; ifs.close(); cin.sync(); cin.get(); return -1; } return 0;}P.S. Если порядок следования элементов не имеет значения
У кого нибудь есть текст "number one fan" Билана? Дайте, пли-и-и-з!!!
Дима Билан - Number One Fan
They call me Dima Bilan...
...
Love at first
подробнее...
У кого-нибудь есть текст песни Димы Билана "Number one fan"?
DIMA BILAN – NUMBER ONE FAN
Love at first sight
I‘ve been watching you all night
What
подробнее...
Кто знает перевод песни Number One Fun Димы Билана?
я знаю))мне 10 баллов,плиз)
Они зовут меня Дима Билан...
Любовь с первого
подробнее...
You never give me your money: you only give me your funny paper
I never give you my number,
I only give you my situation,
And in the middle of investigation
подробнее...
нужен топик по англискому на тему "мои каникулы" не сложный
1. My Summer Holidays (Мои летние каникулы)
Most people like to leave their places on holidays.
подробнее...
Кому нравится актёр Джим Кэрри?Можете назвать список фильмов где он снимался?(а то я знаю 5-6 самых известных)
Ой блин.Как много у него фильмов.
1. Верь или не верь (2009) ...Robert Ripley
Ripley's
подробнее...
Кто знает слова песни Дима Билана № 1?
я
ша скину
They call me Dima Bilan...
...
Love at first sight
I've been
подробнее...
как называется новая песня д. билана?
» билан - number_one_fan_studio
» Билан Д - летите, летите
» Билан Дима - Never Let U Go &
подробнее...
люди, пришлите лицензионный ключ для ACDSee 8
Попробуй это 1)While installing the application choose "Full" and enter the serial number
подробнее...