#include<stdio.h>
#include<malloc.h>
typedef int elemtype;
typedef struct node
{
struct node *next;
elemtype data;
}linknode;
void createnode(linknode *&l,elemtype a[],int n) //创建单链表
{
linknode *p,*q;
l=(linknode *)malloc(sizeof(linknode));
p=l;
for(int i=0;i<n;i++)
{
q=(linknode *)malloc(sizeof(linknode));
q->data=a[i];
p->next=q;
p=q;
}
p->next=NULL;
}
void destory(linknode *&l)//销毁单链表
{
linknode *p,*pre;
pre=l;p=l->next;
while(p!=NULL)
{
free(pre);
pre=p;
p=p->next;
}
free(pre);
}
void delmaxnode(linknode *&l)
{
linknode *pre,*p,*maxp,*maxpre;
pre=l;p=l->next;maxp=p;
while(p!=NULL)
{
if(maxp->data<p->data)
{
maxp=p;maxpre=pre;
}
pre=p;
p=p->next;
}
maxpre->next=maxp->next;
free(maxp);
}
int main()
{
linknode *l,*p;
elemtype a[5];
int i;
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
createnode(l,a,5);
p=l->next;
while(p!=NULL)
{
printf("%2d",p->data);
p=p->next;
}
printf("\n");
delmaxnode(l);
p=l->next;
while(p!=NULL)
{
printf("%2d",p->data);
p=p->next;
}
printf("\n");
destory(l);
return 0;
}