Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstddef>
- #include <cstdio>
- struct queue
- {
- int data = 0;
- queue *prev = NULL, *next = NULL;
- };
- // Загружает очередь из файла n
- void input(queue **q, const char *n);
- // Добавляет элемент i в очередь q
- void enqueue(queue *q, int &i);
- // Удалает первый элемент и возвращает его значание
- int dequeue(queue *q);
- int main()
- {
- queue *q = NULL;
- input(&q, "in.txt");
- return 0;
- }
- void input(queue **q, const char *n)
- {
- *q = new queue;
- (*q)->prev = (*q)->next = *q;
- FILE *f = NULL;
- fopen_s(&f, n, "r");
- if(f == NULL) return;
- int i = 0;
- fscanf_s(f, "%d", &(*q)->data);
- while(fscanf_s(f, "%d", &i) != EOF)
- enqueue(*q, i);
- }
- void enqueue(queue *q, int &i)
- {
- queue *n = new queue;
- n->data = i;
- n->prev = q->prev;
- q->prev->next = n;
- n->next = q;
- q->prev = n;
- }
- int dequeue(queue *q)
- {
- const int s = q->data;
- q->next->prev = q->prev;
- q->prev->next = q->next;
- delete q;
- return s;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement