# include <stdio.h>
# include <stdlib.h>
#define Initsize 100
typedef int ElemType;
typedef struct {
ElemType *data;
int MaxSize,length;
}seqList;
/*C语言中, -> 是指针操作符, 点是结构操作符。
如果 L 是一个结构实例的指针,要用 -> 访问结构里的变量,而不能用点。
如果L 是一个结构的实例而非指针,只能用点而不能用 -> 。*/
void Init(seqList *L){
L->data=(ElemType *)malloc(sizeof(ElemType)*Initsize);
L->length=0;
L->MaxSize=Initsize;
}
void create(seqList *L,int n){
for (int i=0;i<n;i++){
scanf("%d",&(L->data[i]));
L->length=n;
}
}
void show(seqList L){
for(int i=0;i<L.length;i++){
printf("%-3d ",L.data[i]);
}
}
//2
bool Del_Min(seqList *L,ElemType *value){
if(L->length==0){
return false;
}
*value=L->data[0];
int pos=0;
for(int i=1;i<L->length;i++){
if(L->data[i]<*value){
*value=L->data[i];
pos=i;
}
}
L->data[pos]=L->data[L->length-1];
L->length--;
return true;
}
int main(void){
int n,value;
seqList L;
Init(&L);
printf("please input length: ") ;
scanf("%d",&n);
printf("please input init data: ");
create(&L,n);
printf("you list: \n");
show(L);
Del_Min(&L,&value);
printf("min data: %d ",value);
printf("new list:");
show(L);
system("pause");
}