Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
#include
#include
#include
struct list { list(char _elem = 0, list *_next = NULL, list *_prev = NULL) : elem(_elem), next(_next), prev(_prev) { } char elem; list *next, *prev; }; void print(list *l, ULONGLONG n); char input(const char *path, list *l, ULONGLONG *n); ULONGLONG delete_neighbourses(list **l, ULONGLONG n); int main() { setlocale(0, ""); ULONGLONG n = 0; list *L = new list(); char r = input("symbols.txt", L, &n); if (r != -1) print(L, n - delete_neighbourses(&L, n)); return r != -1 ? 0 * _getch() : -1; } char input(const char *path, list *l, ULONGLONG *n) { FILE *stream = NULL; fopen_s(&stream, path, "r"); if (stream) { char elem = 0; list *t = NULL; bool read = true; for (list *p = l; read; ) { if (read = fscanf_s(stream, "%c", &elem, 1) != EOF) { p->next = t; p = t ? p->next : p; p->elem = elem; t = new list(0, NULL, p); (*n)++; } else { p->next = l; l->prev = p; } } return 0; } else { perror("Не удалось считать файл по причине"); return -1; } } ULONGLONG delete_neighbourses(list **l, ULONGLONG n) { ULONGLONG d = 0, i = 0; for (list **p = l; n - d > 2 && i != n; ) { if ((*p)->prev->elem == (*p)->next->elem) { list *t = *p; // Элемент на удаление *p = (*p)->next; // Текущий элемент - следующий if (*l == t) *l = *p; t->prev->next = (*p); // У предыдущего новая ссылка на следующий (*p)->prev = t->prev; // У следующего ссылка на предыдущий - предыдущий удаленного delete t; d++; } else { p = &(*p)->next; i++; } } return d; } void print(list *l, ULONGLONG n) { printf_s("Результат программы: \n"); if (n) for (list *p = l; n; p = p->next, n--) printf_s("%c", p->elem); else printf_s("Пустой список"); }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)