#include <iostream>
#include<malloc.h>
#include<stdio.h>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
} LinkList;
void InitList(LinkList *&L)
{
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
}
void CreateListF(LinkList *&L,int a[],int n)
{
LinkList *s;
int i;
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL;
for(i=0; i<n; i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
s->next=L->next;
L->next=s;
}
}
void delmaxnode(LinkList *&L)
{
LinkList *p=L->next,*pre=L,*maxp=p,*maxpre=pre;
while(p!=NULL)
{
if(maxp->data<p->data)
{
maxp=p;
maxpre=pre;
}
pre=p;
p=p->next;
}
maxpre->next=maxp->next;
free(maxp);
}
void DisList(LinkList *L)
{
LinkList *p=L->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void DestoryList(LinkList *L)
{
LinkList *pre=L,*p=L->next;
while(p!=NULL)
{
free(pre);
pre=p;
p=pre->next;
}
free(pre);
}
int main()
{
int i,n;
int a[100];
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
LinkList *L;
InitList(L);
CreateListF(L,a,n);
DisList(L);
delmaxnode(L);
DisList(L);
DestoryList(L);
return 0;
}
删除单链表中元素值最大的节点
最新推荐文章于 2022-10-02 09:36:34 发布