// функция создания или добавления элемента в кольцо
zap *sozd(zap *s)
{
char k='y';
st **z;
zap *s1,*s2;
if (!s)
{
if(!(s=(zap *) malloc(sizeof(zap)))) // выделение памяти
{
setlocale(LC_ALL,".ACP");
puts("Память не выделена");
setlocale(LC_ALL,".OCP");
return NULL;
}
setlocale(LC_ALL,".ACP");
puts("Введите номер стоянки");
setlocale(LC_ALL,".OCP");
scanf("%d",&s->inf); // номер стоянки
setlocale(LC_ALL,".ACP");
puts("Введите кол-во мест на стоянке");
setlocale(LC_ALL,".OCP");
scanf("%d",&s->mest); // кол-во мест
z=(st**)calloc(1,sizeof(st*)); // выделение памяти
for ( int i=0;imest;i++) // под стояночные места
{
z[i]=(st*)calloc(1,sizeof(st)); // изначально
strcpy(z[i]->fio,"Место"); // места пустые
strcpy(z[i]->nom,"свободно");
}
s->ky=z; // все места на стоянке свободны
s->m=NULL; // очередь пуста
s->l=s; // создание входа в кольцо
s->r=s;
s1=s;
setlocale(LC_ALL,".ACP");
puts(" Добавить еще одну стоянку?(y/n): ");
setlocale(LC_ALL,".OCP");
fflush(stdin);
k=getch();
}
else s1=s->r; // кольцо уже существует
while (k!='n')
{
if((s2=(zap *) calloc(1,sizeof(zap)))==NULL)
{
setlocale(LC_ALL,".ACP");
puts("Память не выделена");
setlocale(LC_ALL,".OCP");
return NULL;
}
setlocale(LC_ALL,".ACP");
puts("Введите номер стоянки");
setlocale(LC_ALL,".OCP");
scanf("%d",&s2->inf); // номер стоянки
setlocale(LC_ALL,".ACP");
puts("Введите кол-во мест на стоянке");
setlocale(LC_ALL,".OCP");
scanf("%d",&s2->mest); // кол-во мест
z=(st**)calloc(1,sizeof(st*));
for ( int i=0;imest;i++)
{
z[i]=(st*)calloc(1,sizeof(st));
strcpy(z[i]->fio,"Место");
strcpy(z[i]->nom,"свободно");
}
s2->ky=z; // все места на стоянке свободны
s2->m=NULL; // очередь пуста
s1->l=s2;
s2->r=s1;
s1=s2;
s2->l=s;
s->r=s2;
setlocale(LC_ALL,".ACP");
puts(" Добавить еще одну стоянку?(y/n): ");
setlocale(LC_ALL,".OCP");
fflush(stdin);
k=getch();
}
return(s);
}
Смотрите новинки видеопроката и будьте в курсе, где снимаются самые
популярные актеры кино. Наслаждайтесь игрой своих любимых актеров.