Двусвязный список с дублированием одного числа. - 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; }
Объяснение кода листинга программы
В этом коде создается двусвязный список, который может содержать дубликаты элементов.
- Структура
st
объявляется как структура, содержащая целочисленное значениеn
и указательnext
на следующий элемент списка. - Указатель
p
инициализируется какNULL
, что означает, что список пуст. - В цикле
do-while
пользователь вводит элементы списка. - Для каждого введенного элемента создается новый элемент списка (
ps = new st;
). - Значение элемента сохраняется в поле
n
нового элемента. - Указатель
next
нового элемента указывает на предыдущий элемент списка (pp
). - Предыдущий элемент списка теперь указывает на новый элемент (
pp = ps;
). - После завершения цикла
do-while
выводится сообщениеcontinue? (yes=1)
. - Если пользователь ввел '1', цикл продолжается, иначе он завершается.
- Выводится последний введенный элемент списка.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д