#include‹stdio.h›

#include‹stdlib.h›

узел структуры

{

внутренние данные;

узел структуры *next;

}*p,*head,*temp;

недействительный дисплей (целое число);

недействительным IAB (целое число);

аннулировать идентификатор (целое число);

аннулировать iate (целое число);

недействительный мазок (инт);

недействительным ддп (целое число);

недействительная дата (целое число);

главный()

{

head=(структурный узел*)malloc(sizeof(структурный узел));

p=голова;целое число n;

scanf("%d",&n);

printf("введите элементы");

р=голова;целое я;

для (я = 0; я n; я ++)

{

temp=(структурный узел*)malloc(sizeof(структурный узел));

scanf("%d",&temp-›данные);

p-›следующий=temp;

p=p-›следующий;

}

интервал х;

printf("\n 1.отобразить \n 2.вставить \n 3.удалить \n 4.выйти");

do{

scanf("%d",&x);int c;

переключатель (х)

{

случай 1: отображение (n); перерыв;

случай 2: printf("\n 1. в начале 2. в нужной позиции 3. в конце 4. на выходе");

scanf("%d",&c);

переключатель (с)

{

случай 1:iab(n);break;

случай 2:idp(n);перерыв;

case 3:iate(n);break;

случай 4: выход (1);

}

ломать;

case 3:printf("\n 1. в начале 2. в нужной позиции 3. в конце 4. на выходе");

scanf("%d",&c);

переключатель (с)

{

случай 1: мазок (н); перерыв;

случай 2:ddp(n);перерыв;

случай 3: дата (n); перерыв;

случай 4: выход (1);

}

ломать;

случай 4: выход(1);

по умолчанию: printf («введите правильный ответ»);

}}пока(1);

}

недействительный дисплей (int n)

{ р = голова; целое я;

для (я = 0; я n; я ++)

{

printf(" # %d #",p-›следующие-›данные);

p=p-›следующий;

}

}

недействительным IAB (целое п)

{

р=голова;инт *м;

m=p-›следующий;

temp=(структурный узел*)malloc(sizeof(структурный узел));

p-›next=temp-›данные;

темп-›следующий=м;

printf("\n введите данные");

scanf("%d",temp-›данные);

printf("\n успех");

дисплей(n+1);

}

недействительный idp (int n)

{

int я, х; р = голова;

printf("введите желаемую позицию");

scanf("%d",&x);

for(i=0;i‹x-1;i++)

{

p=p-›следующий;

}

интервал *с=р;

printf("введите значение");

p-›next=temp-›данные;

temp=(структурный узел*)malloc(sizeof(структурный узел));

scanf("%d",&temp-›данные);

темп-›следующий=с;

}

аннулировать iate (int n)

{

интервал i;p=голова;

для (я = 0; я n; я ++)

{

p=p-›следующий;

если(p-›следующий==NULL)

{

printf("#введите значение #");p-›next=temp;

temp=(структурный узел*)malloc(sizeof(структурный узел));

scanf("%d",&temp-›данные);

}

}

}

Пустой мазок (int n)

{

р=голова;

p-›следующий=p-›следующий-›следующий;

}

недействительным ddp (целое число n)

{ int x,i;p=голова;

printf("введите позицию");

for(i=0;i‹x-1;i++)

{

p=p-›следующий;

}

p-›следующий=p-›следующий-›следующий;

}

недействительная дата (int n)

{

интервал i;p=голова;

для (i=0;i‹n-1;i++)

{

p=p-›следующий;

}

p-›следующий=NULL;

}