Как это можно реализовать?
Код: Выделить всё
struct spis{
char c[20];// вид спорта
int size;
spis *next;
}*p,*cur,*prev,*top;
void push(int n);
void show();
void main()
{
int n;
printf("razmer:\n");scanf("%i",&n);
top=0;
push(n);
show();
getch();
}
void push(int n)
{
printf("Input some sport and size:\n");
for(;n;n--)
{
p=new spis;
printf("[%i]sport and size:\n",n);
scanf("%s",&p->c);
scanf("\n%i",&p->size);
p->next=NULL;
if(top==NULL) top=p;
cur=top;
prev=NULL;
while(cur && p->c > cur->c && p->size>cur->size)
{
prev=cur;
cur=cur->next;
}
if(cur==NULL) prev->next=p;
else if(prev)
{
p->next=cur;
prev->next=p;
}
else
{
top=p;
p->next=top==cur?NULL:cur;
}
}
}
void show()
{
p=top;
if(p==NULL)
printf("\n Spisok is empty\n");
else
printf("\nSpisok^^:\n");
while(p){
printf("%2s %4i\n",p->c,p->size);
p=p->next;
}