Двусвязный список с дублированием одного числа. - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите написать код на на Си двусвязного списка с дублированием одного числа(единицы). Это код(тот что ниже) для 1-ых двух членов двусвязного списка. Надо написать код для всего списка, и там продублировать единицы.
struct spis {
                       char text [10] ;
                       spis *pred ;
                       spis *next ;
                   }
 
main ()
{   spis * ps, *pm ;
    ps = new spis ;
    ps->pred=NULL ;
    ps->next=NULL ;
    gets ( ps->text) ;
   pm = new spis ;
   pm->pred = ps ;
   pm->next =NULL ;
   ps->next= pm ;
   gets (pm->text ) ;
}

Решение задачи: «Двусвязный список с дублированием одного числа.»

textual
Листинг программы
#include<stdio.h>
#include<conio.h>
struct st {int n;st *next;} *p, *pm, *ps, *pp=NULL;
main()
{ int c;
do {ps=new st;
printf (" \n input elements ");
scanf ("%d", &c);
(*ps).n=c;
(*ps).next=pp;
pp=ps;
printf(" \n continue? (yes=1) ");
}
while (getch()=='1');
printf ("\n");
printf ("%d", c );
getch();
return 0;
 
}

Объяснение кода листинга программы

В этом коде создается двусвязный список, который может содержать дубликаты элементов.

  1. Структура st объявляется как структура, содержащая целочисленное значение n и указатель next на следующий элемент списка.
  2. Указатель p инициализируется как NULL, что означает, что список пуст.
  3. В цикле do-while пользователь вводит элементы списка.
  4. Для каждого введенного элемента создается новый элемент списка (ps = new st;).
  5. Значение элемента сохраняется в поле n нового элемента.
  6. Указатель next нового элемента указывает на предыдущий элемент списка (pp).
  7. Предыдущий элемент списка теперь указывает на новый элемент (pp = ps;).
  8. После завершения цикла do-while выводится сообщение continue? (yes=1).
  9. Если пользователь ввел '1', цикл продолжается, иначе он завершается.
  10. Выводится последний введенный элемент списка.
  11. Программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы