#include<stdio.h>
#include<stdlib.h>
typedef struct pop
{
int num;
struct pop *next;
}top;
top* listDelete(top *start) //删除指定的单个元素
{
int a;
top * t=start;
scanf("%d", &a);
while(start!=NULL)
{
if(start->num==a && start->next!=NULL) //开头删除
{
t=start->next;
break;
}
else if(start->next->num==a && start->next->next!=NULL) //中间删除
{
start->next=start->next->next;
break;
}
else if(start->next->num==a && start->next->next==NULL) //末尾删除
{
start->next=NULL;
break;
}
start=start->next;
}
return t;
}
top* listInsert(top *start) //按顺序插入元素
{
top *t=start;
top *p=(top *)malloc(sizeof(top));
p->next=NULL;
scanf("%d", &p->num);
while(start!=NULL)
{
if(start->num>p->num) //开头插入·
{
p->next=start;
t=p;
break;
}
else if(start->next->num > p->num) //中间插入
{
p->next=start->next;
start->next=p;
break;
}
else if(start->next->num<p->num && start->next->next==NULL) //末尾插入
{
start->next->next=p;
break;
}
start=start->next;
}
return t;
}
top *listCreate(int n) //创建链表
{
top *newl, *endl, *head=NULL;
while(n--)
{
newl=(top *)malloc(sizeof(top));
scanf("%d", &newl->num);
newl->next=NULL;
if(head==NULL)
head=newl;
else
endl->next=newl;
endl=newl;
}
return head;
}
void outPut(top *head) //链表输出
{
top *t=head;
while(t!=NULL)
{
printf("%d ", t->num);
t=t->next;
}
}
int main()
{
top *head=NULL;
int n;
scanf("%d", &n);
head=listCreate(n);
head=listInsert(head);
head=listDelete(head);
outPut(head);
return 0;
}