Выбрать соревнование | Задачи | Послать решение | Результаты проверки | Статистика по задачам | Вопросы и ответы | Результаты соревнования | Состояние сервера | Изменить данные | Управление командой | Помощь |
01/09/2007 | Основы программирования. Списки (G) |
Ограничения: время – 200ms/500ms, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Двусвязный список имеет следующую структуру узла
typedef struct node {
int value;
struct node *next, *prev;
} node;
Напишите функцию insertafter(корень, узел, значение)
, которая добавляет новый узел с указанным
значением после заданного.
Для вставки нового узла в начало списка в качестве узла указывается NULL, при этом изменяется указатель на корень.
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int value;
struct node *next, *prev;
} node;
// определение функции insertafter
...
int main()
{ node *root=NULL;
// root->NULL
insertafter(&root,NULL,1);
// root->[1]->NULL
insertafter(&root,NULL,2);
// root->[2]<->[1]->NULL
insertafter(&root,NULL,3);
// root->[3]<->[2]<->[1]->NULL
node *n=root->next;
insertafter(&root,n,4);
// root->[3]<->[2]<->[4]<->[1]->NULL
}
В качестве решения необходимо отправлять файл, содержащий только эту функцию!