#include<stdio.h>
#include<string.h>
struct rec{
       char fam[22];
       rec *p;};
int main()
   {rec *n,*first,*q,*p,a;
int flag;
first=new rec;// создание певого элемента вне цикла
    first->p=NULL;
    puts("Input string or empty string");
gets(first->fam);//занесениеинформации в элемент
gets(a.fam);
while(a.fam[0]!='\0')//циклормирования списка
    {
       n=new rec;
       strcpy(n->fam,a.fam);
    if(strcmp(n->fam,first->fam)<0)//значениечисла
{n->p=first;//меньше значения первого элемента
first=n;
    }
    else
       {// организация цила поиска места вставки
flag=0;
p=first;
        q=first;
while((q)!=NULL&&!flag)
         {if(strcmp(n->fam,q->fam)<0)
              {n->p=p->p;
               p->p=n;
               flag=1;}
    else {p=q;q=q->p;}
         }
if(!flag)
         {n->p=NULL;
           p->p=n;}
         }
      gets(a.fam);
   }
puts("Sorted spisok");
       q=first;
while(q!=NULL){
       puts(q->fam);
q=q->p;}
return 0;
 }

