#include "stdio.h"
#include "stdlib.h"
typedef struct linknode
{
int data;
struct linknode *next;
}linklist;
int create_linklistT(linklist *L,int a[],int n)
{
int i;
linklist *r,*p;
r=L;
for(i=0;i<n;i++)
{
p=(linklist *)malloc(sizeof(linklist));
p->data=a[i];
r->next=p;
r=p;
}
r->next=NULL;
}
int show_linklist(linklist *L)
{
linklist *p;
p=L->next;
while(p!=NULL)
{
printf("%2d ",p->data);
p=p->next;
}
printf("\n");
}
int find_delete_max_value(linklist *L)
{
linklist *maxp,*maxpre,*p,*pre;
maxpre=L,maxp=L->next;p=L->next;pre=L;
while(p!=NULL)
{
if(p->data>maxp->data)
{
maxpre=pre;maxp=p;
}
pre=p;p=p->next;
}
printf("the max value is %d and deleted \n",maxp->data);
maxpre->next=maxp->next;
free(maxp);
return 1;
}
int main()
{ int a[10]={11,13,15,17,19,2,4,6,8,20};
int n=10;
linklist *L;
L=(linklist *)malloc(sizeof(linklist));
L->next=NULL;
create_linklistT(L,a,n);
show_linklist(L);
find_delete_max_value(L);
show_linklist(L);
}