69,371
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
#include "malloc.h"
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
//构造一个链表
bool CreatList(LinkList &L)
{
int x;
L=(LinkList)malloc(sizeof(LNode));
scanf("%d",&x);
LNode *r=L,*s;
while(x!=999)
{
s=(LinkList)malloc(sizeof(LNode));
s->data=x;
r->next=s;
r=s;
scanf("%d",&x);
}
r->next=NULL;
return true;
}
//删除链表中最小结点
LinkList DeleteMin(LinkList &L)
{
LNode *p=L,*pre=p->next;
LNode *minp=p,*minpre=pre;
while (p!=NULL)
{
if (p->data<minp->data)
{
minp=p;
minpre=pre;
}
pre=p;
p=p->next;
}
minpre->next=minp->next;
free(minp);
return L;
}
void main()
{
LinkList L;
CreatList(L);
DeleteMin(L);
while(L->next)
{
L=L->next;
printf("%d",L->data);
}
}
#include "stdio.h"
#include "malloc.h"
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
//构造一个链表
bool CreatList(LinkList &L)
{
int x;
L = NULL;
LNode *r,*s;
do{
scanf("%d",&x);
if(x == 999)
break;
s=(LinkList)malloc(sizeof(LNode));
if(L == NULL)
{
L = s;
r = L;
}
s->data=x;
r->next=s;
r=s;
}while(1);
r->next=NULL;
return true;
}
//删除链表中最小结点
LinkList DeleteMin(LinkList &L)
{
LNode *p=L;
LNode *minp=p,*minpre=p;
while ((p != NULL)&&(p->next != NULL))
{
if(minp->data > p->next->data)
{
minp = p->next;
minpre = p;
}
p = p->next;
}
minpre->next = minp->next;
if(minp == L)
L = minp->next;
free(minp);
return L;
}
void main()
{
LinkList L = NULL;
printf("input\n");
CreatList(L);
DeleteMin(L);
printf("output:\n");
while(L)
{
printf("%d\n",L->data);
L=L->next;
}
}