这是连接哪2个链表啊?
#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)
return pointer->next;
else
{
if(tmp->next->next==NULL)
tmp->next=NULL;
else
tmp->next=temp->next->next;
return poniter;
}
}
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,tmp3;
int i;
pointer=(link)malloc(sizeof(node));
pointer->data=array[0];
tmp1=pointer;
for(i=1;i<num;i++)
{
tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
tmp1->next=tmp2;
tmp1=tmp1->next;
}
return pointer;
}
link concatenate(link pointer,link pointer2)
{
link tmp;
tmp=pointer1;
while(tmp->next)
tmp=tmp->next;
tmp->next=pointer2;
return pointer1;
}
void main()
{
int arr1[]={3,12,8,9,11};
link ptr;
ptr=create_list(arr1,5);
selection_sort(ptr,5);
}
delete_node那没怎么看明白,
还有就是连接的是哪2个链表。谢谢
链表
[解决办法]
concatenate函数是把以pointer2以头的链表,接到pointer1链表的后面
[解决办法]
delete_node(link pointer,link temp)函数中temp是当前最小结点的前驱
此函数的功能是删除当前链表中的最小结点。
[解决办法]
代码有些拼写错误,改正后如下:
#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 temp)
{
if(temp=NULL)
return pointer->next;
else
{
if(temp->next->next==NULL)
temp->next=NULL;
else
temp->next=temp->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,tmp3;
int i;
link pointer;
pointer=(link)malloc(sizeof(node));
pointer->data=array[0];
tmp1=pointer;
for(i=1;i<num;i++)
{
tmp2=(link)malloc(sizeof(node));
tmp2->next=NULL;
tmp2->data=array[i];
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()
{
int arr1[]={3,12,8,9,11};
link ptr;
ptr=create_list(arr1,5);
selection_sort(ptr,5);
}