王道数据结构——p40 4
#include<stdio.h>
#include<stdlib.h>
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] = {0,2,3,1,5,6,7};
int n = 7;
for(int i=0 ; i<n ; i++){
p = (lnode*)malloc(sizeof(lnode));
p->data = a[i];
r->next = p;
r = p;
}
r->next = NULL;
printf("最小的是:%d\n删除之后的链表是:",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;
}