Вставить элемент после определённого элемента.
Добавлено: 01 май 2010, 18:59
как бы создать функцию, которая бы могла вставить элемент после определённого элемента.
вот мой список:
вот мой список:
Код: Выделить всё
struct list{
char c;
list *next;
}*p,*cur,*prev,*top;
void show(void);
void push(char value);
void pop(char value);
int main()
{
top=0;
char key,value;
int done=false;
while(!done){
system("cls");
show();
printf("\nA)dd\nD)elete\nQ)uit\n");
key=getchar();
switch(toupper(key))
{
case 'A':
value=getch();
push(value);
break;
case 'D':
printf("\nDel:\n");
value=getch();
pop(value);
break;
case 'Q':
done=true;
break;
}
}
return 0;
}
void push(char value)
{
printf("\nInput:\n");
p=new list;
p->c=value;
p->next=NULL;
while(cur && p->c > cur->c)
{
prev=cur;
cur=cur->next;
}
if(prev==NULL)
{
p->next=top;
top=p;
}
else
{
p->next=cur;
prev->next=p;
}
}
void pop(char value)
{
prev=top;cur=top->next;
if(value==top->c)
{
p=top;
top=top->next;
free (p);
}
else
{
while(cur!=NULL && value!=cur->c)
{
prev=cur;
cur=cur->next;
}
if(cur!=0)
{
p=cur;
prev->next=cur->next;
free (p);
}
}
}
void show()
{
p=top;
if(p==0)
printf("\n list is empty\n");
else
printf("\nLIST:\n");
while(p)
{
printf("%c\n",p->c);
p=p->next;
}
}