Задачи
-
Напишите функцию, которая принимает на вход знаковое целое число и печатает его двоичное представление, не используя библиотечных классов или функций.
-
Напишите функцию, удаляющую последовательно дублирующиеся символы в строке:
void RemoveDups(char* str);
// пример использования
char data[] = “AAA BBB AAA”;
RemoveDups(data);
printf(“%s\n”, data); // “A B A”
- Реализуйте функции сериализации и десериализации двусвязного списка в бинарном формате в файл. Алгоритмическая сложность решения должна быть меньше квадратичной.
// структуру ListNode модифицровать нельзя
struct ListNode {
ListNode * prev;
ListNode * next;
ListNode * rand; // указатель на произвольный элемент данного списка, либо NULL
std::string data;
};
class List {
public:
void Serialize (FILE * file); // сохранение в файл (файл открыт с помощью fopen(path, "wb"))
void Deserialize (FILE * file); // загрузка из файла (файл открыт с помощью fopen(path, "rb"))
private:
ListNode * head;
ListNode * tail;
int count;
};