#include<iostream>
using namespace std;
typedef struct LNode{
int data;
struct LNode*next;
}LNode,*LinkList;
int a[6]={5,2,3,4,1,6};
int n=6;
void build(LinkList &L){//建立单链表
L=(LNode*)malloc(sizeof(LNode));
L->next=NULL;
LNode*s,*r=L;
for(int i=0;i<n;i++){
s=(LNode*)malloc(sizeof(LNode));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void display(LinkList L){//输出单链表
LNode*p=L->next;
while (p)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
void delmin(LinkList &L){//删除最小值算法
LNode*p=L->next,*min=p,*pmin,*r=L;
while(p){
if(p->data<min->data){
pmin=r;
min=p;
}
r=p;
p=p->next;
}
pmin->next=min->next;
cout<<min->data<<endl;
free(min);
}
int main(){
LinkList L;
build(L);
display(L);
delmin(L);
display(L);
}