连接两个链表。

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

}

相关推荐
修己xj1 小时前
nslookup 使用指南:两种模式与常用查询技巧
linux
唠玖馆3 小时前
文件系统详解
linux·文件系统·ext2
GeW3 小时前
当Linux内核开始“确定性”,制造高端化才有了底层语法
linux
flyingonpine3 小时前
PowerShell脚本数字签名实战:自签名证书、代码签名与信任链验证
windows·信任链
星恒随风5 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
StarsGreen7 小时前
libva在intel平台上的前端流程简介
linux
goehou9 小时前
让 AI 替我操作这台电脑,先把手能伸多远定下来
windows·自动化·权限管理·ai agent
坤坤子吖9 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
公子小六10 小时前
基于.NET的Windows窗体编程之WinForms数据持久化(1)
windows·microsoft·c#·.net·winforms
Nerd(BUG版)11 小时前
鸿蒙API18~26新增V2组件全解析
microsoft·华为·harmonyos