#include<malloc.h>
#include<iostream>
#include <stdio.h>
using namespace std;
typedef struct LNode{
int data;
struct LNode *next;
}LNode;
void createlistF(LNode *&c,int a[],int n)//尾插法
{
LNode *s;
int i;
c=(LNode *)malloc(sizeof(LNode));
c->next=NULL;
for(i=0;i<n;i++)
{
s=(LNode *)malloc(sizeof(LNode));
s->data=a[i];
s->next=c->next;
c->next=s;
}
}
void display(LNode *head)//输出
{
LNode *p;
p=head->next;
printf("开始输出单链表各个元素\n");
while(p!=NULL){
printf("->%d",p->data);
p=p->next;
}
printf("\n单链表结束!\n");
}
void delete1(LNode *L)
{
LNode *pre=L,*p=pre->next,*minp=p,*minpre=pre;
//cout<<"m"<<minp->data;cout<<"p"<<p->data<<endl;
while(p!=NULL)
{
//cout<<"m"<<minp->data;cout<<"p"<<p->data<<endl;
if(p->data<minp->data)
{
//cout<<"m"<<minp->data;cout<<"p"<<p->data<<endl;
minp=p;
minpre=pre;
}
pre=p;
p=p->next;
}
minpre->next=minp->next;
free(minp);
}
int main()
{
LNode *a;
int a1[10]={1,2,3,4,5,6,7,8,9,10};
createlistF(a,a1,10);
delete1(a);
display(a);
return 0;
}