连接两个链表。

#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=array0;

tmp1=pointer;

for(i=1;i<num;i++)

{

tmp2=(link)malloc(sizeof(node));

tmp2->next=NULL;

tmp2->data=arrayi;

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;

}

int main(void)

{

int arr1\[\]={3,12,8,9,11};

link ptr;

ptr=create_list(arr1,5);

selection_sort(ptr,5);

}

相关推荐
tntxia9 小时前
linux curl命令详解_curl详解
linux
扛枪的书生12 小时前
Linux 网络管理器用法速查
linux
顺风尿一寸15 小时前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode21 小时前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫1 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
AlfredZhao3 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐4 天前
Linux内存扩容指南
linux
zylyehuo4 天前
Linux 彻底且安全地删除文件
linux
用户805533698035 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297915 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux