王道数据结构2.4
#include
#include
typedef struct lnode{
int data;
struct lnode* next;
}lnode,*linklist;
int findmin(linklist &l);
int main(){
linklist l = (lnode*)malloc(sizeof(lnode));
l->next = NULL;
lnode *p,*r=l;
//int a[7] = {1,2,3,0,5,6,7};
int a[7] = {0,2,3,1,5,6,7};
//int a[7] = {3,2,3,1,5,6,-1};
int n = 7;
for(int i=0 ; i
p = (lnode*)malloc(sizeof(lnode));
p->data = a[i];
r->next = p;
r = p;
}
r->next = NULL;
printf("最小的是:%dn删除之后的链表是:",findmin(l));
p = l->next;
while(p!=NULL){
printf("%d ",p->data);
p = p->next;
}
return 0;
}
int findmin(linklist &l){
lnode *s,*p,*pre;
p = l;
pre = l;
s = l->next;
int min = s->data;
while(s->next != NULL){
s = s->next;
pre = pre->next;
if(min > s->data){
min = s->data;
p = pre;
}
}
s = p->next;
p->next = s->next;
free(s);
return min;
}