连接两个链表。

#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[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;

}

int main(void)

{

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

link ptr;

ptr=create_list(arr1,5);

selection_sort(ptr,5);

}

相关推荐
aitav07 分钟前
⚡️ Linux Docker 基本命令参数详解
linux·运维·docker
姓刘的哦1 小时前
ubuntu中使用docker
linux·ubuntu·docker
代码程序猿RIP1 小时前
【Linux】(1)—进程概念-⑤进程调度
linux·运维
我命由我123451 小时前
VSCode - VSCode 放大与缩小代码
前端·ide·windows·vscode·前端框架·编辑器·软件工具
_lizhiqiang1 小时前
联想拯救者R9000P 网卡 Realtek 8852CE Ubuntu/Mint linux 系统睡眠后,无线网卡失效
linux·运维·ubuntu·r9000p·无线网卡·8852ce
PT_silver1 小时前
tryhackme——Abusing Windows Internals(进程注入)
windows·microsoft
心随_风动2 小时前
SUSE Linux 发行版全面解析:从开源先驱到企业级支柱
linux·运维·开源
爱炸薯条的小朋友2 小时前
C#由于获取WPF窗口名称造成的异常报错问题
windows·c#·wpf
Lw老王要学习3 小时前
VScode 使用 git 提交数据到指定库的完整指南
windows·git·vscode
西北大程序猿3 小时前
单例模式与锁(死锁)
linux·开发语言·c++·单例模式