Рубрики

Структуры данных | Связанный список | Вопрос 8

Следующая функция C принимает в качестве параметра односвязный список целых чисел и переупорядочивает элементы списка. Функция вызывается со списком, содержащим целые числа 1, 2, 3, 4, 5, 6, 7 в указанном порядке. Каким будет содержимое списка после завершения функции?

struct node 

{

  int value;

  struct node *next;

};

void rearrange(struct node *list)

{

  struct node *p, * q;

  int temp;

  if ((!list) || !list->next) 

      return;

  p = list;

  q = list->next;

  while(q) 

  {

     temp = p->value;

     p->value = q->value;

     q->value = temp;

     p = q->next;

     q = p?p->next:0;

  }

}

(А) 1,2,3,4,5,6,7
(В) 2,1,4,3,6,5,7
(С) 1,3,2,5,4,7,6
(D) 2,3,4,5,6,7,1

Ответ: (Б)
Объяснение: Функцияrange () обменивается данными каждого узла со своим следующим узлом. Он начинает обмениваться данными с самого первого узла.
Тест на этот вопрос

Рекомендуемые посты:

Структуры данных | Связанный список | Вопрос 8

0.00 (0%) 0 votes