karldonize 发表于 2019-2-14 21:59:39

跪求这个程序每一步的含义,我只知道链表建立和删除的部分

#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{if (tmp==NULL) /*delete first node*/
 return pointer->next;
else
{ if(tmp->next->next==NULL)/*delete last node*/
  tmp->next=NULL;
 else /*delete the other node*/
  tmp->next=tmp->next->next;
 return pointer;
}
}
void selection_sort(link pointer,int num)
{ link tmp,btmp;
 int i,min;
 for(i=0;i<NUM;I++)
 {
 tmp=pointer;
 min=tmp->data;
 btmp=NULL;
 while(tmp->next)
 { if(min>tmp->next->data)
 {min=tmp->next->data;
  btmp=tmp;
 }
 tmp=tmp->next;
 }
printf("\40: %d\n",min);
pointer=delete_node(pointer,btmp);
}
}
link create_list(int array[],int num)
{ link tmp1,tmp2,pointer;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array;
tmp1=pointer;
for(i=1;i<NUM;I++)
{ tmp2=(link)malloc(sizeof(node));
 tmp2->next=NULL;
 tmp2->data=array;
 tmp1->next=tmp2;
 tmp1=tmp1->next;
}
return pointer;
}
link concatenate(link pointer1,link pointer2)
{ link tmp;
tmp=pointer1;
while(tmp->next)
 tmp=tmp->next;
tmp->next=pointer2;
return pointer1;
}
void main(void)
{ int arr1[]={3,12,8,9,11};
 link ptr;
 ptr=create_list(arr1,5);
 selection_sort(ptr,5);
}

jackz007 发表于 2019-2-14 23:01:24

本帖最后由 jackz007 于 2019-2-14 23:03 编辑

    楼主还真是谦虚客气,幸亏没有把微软 windows 10 操作系统的源代码全部搬过来。

啊涂涂 发表于 2019-2-15 10:26:31

jackz007 发表于 2019-2-14 23:01
楼主还真是谦虚客气,幸亏没有把微软 windows 10 操作系统的源代码全部搬过来。

{:10_256:}
页: [1]
查看完整版本: 跪求这个程序每一步的含义,我只知道链表建立和删除的部分