#include<stdio.h>
#include<stdlib.h>
typedef struct Lnode //定义链表
{
int data;
struct Lnode *next;
}Lnode,*Linklist;
void createfifo(Linklist &L,int n) //创建先进先出函数
{
int i;
Linklist p,q;
L=(Linklist)malloc(sizeof(Lnode));
q=L;
for(i=0;i<n;i++)
{
p=(Linklist)malloc(sizeof(Lnode));
scanf("%d",&p->data);
q->next=p;
q=p;
}
q->next=NULL;
}
void print(Linklist L)
{
Linklist p;
p=L->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
void deletemin(Linklist &L) //删除最小结点函数
{
Linklist p,q,m=L->next;
int e=110000;
while(m)
{
if(m->data<e){e=m->data;}
m=m->next;
}
p=L;
q=L->next;
while(q)
{
if(q->data==e)
{
p->next=q->next;
break;
}
p=q;
q=q->next;
}
}
void main() //主函数
{
Linklist L;
int n,e;
printf("请输入链表的元素个数:\n");
scanf("%d",&n);
printf("请输入%d个元素:\n",n);
createfifo(L,n);
deletemin(L);
printf("删除最小值后的链表为:\n");
print(L);
}