算法 c语言 链式插入排序算法
来源:互联网 发布:表示网站域名的是 编辑:程序博客网 时间:2024/06/05 11:32
一.头文件linklist.h定义
#ifndef __LINKLIST_H__
#define __LINKLIST_H__
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
typedef int datatype;
typedef struct listnode
{
datatype data;
struct listnode *next;
}list_node,*list_pnode;
extern void create_linklist(list_pnode h);
extern void show_linklist(list_pnode h);
extern void init_linklist(list_pnode *H);
#endif
二.函数实现linklist.c
#include"linklist.h"
void init_linklist(list_pnode *H)
{
*H = (list_pnode) malloc(sizeof(list_node));
if(NULL == *H)
{
printf("malloc failed\n");
exit(1);
}
(*H)->next = NULL;
}
void create_linklist(list_pnode h)
{
int n,i;
list_pnode new,p;
printf("请输入链表长度:");
scanf("%d",&n);
for(i = 0,p = h;i<n;i++)
{
new = (list_pnode) malloc(sizeof(list_node));
if(NULL == new)
{
printf("malloc failed\n");
exit(1);
}
scanf("%d",&new->data);
new->next = p->next;
p->next = new;
p = p->next;
show_linklist(h);
}
}
void show_linklist(list_pnode h)
{
list_pnode p;
for(p = h->next;p;p = p->next)
{
printf("%d\t",p->data);
}
puts("");
}
三.包含主函数的test.c
#include"linklist.h"
#define LINKSORT
void linksort(list_pnode h)
{
list_pnode p,q,t1,t2;
//将链表分成两部分
p = h->next;
h->next = NULL;
//按顺序将数据逐个插入到有序的链表中
while(p!=NULL)
{
q = p;
p = p->next;
//在有序的链表中寻找插入q指向的结点的位置
t1 = h;
t2 = h->next;
while(t2 != NULL && q->data>t2->data)
{
t1 = t2;
t2 = t2->next;
}
q -> next = t2;
t1 -> next = q;
show_linklist(h);
}
}
#ifdef LINKSORT
int main()
{
list_pnode h;
init_linklist(&h);
printf("创建如下链表:\n");
create_linklist(h);
printf("用链表插入排序算法对联表排序\n");
linksort(h);
return 0;
}
#endif
- 算法 c语言 链式插入排序算法
- C语言算法--插入排序
- 排序算法之插入排序 (C语言)
- C语言之排序算法---插入排序
- c语言排序算法之插入排序
- 插入排序算法的C语言实现
- 插入排序算法C语言实现
- 插入排序算法C语言实现
- 算法导论 之 插入排序[C语言]
- 算法之插入排序【C语言】
- 插入排序算法(C语言实现)
- 直接插入排序算法--c语言实现
- 【算法】直接插入排序C语言实现
- 插入排序算法C语言实现
- 算法 直接插入排序 c语言
- 各类C语言排序算法汇总--插入排序、快速排序
- C语言---排序算法-------直接插入排序(一)
- 排序算法c语言描述---直接插入排序
- 关于unity中的update、Lateupdate和FixedUpdate
- Web前端开发工程师编程能力飞升之路 [转]
- Spring Aspectj 代理 前置 后置 以及 异常
- centos7下cron命令
- 状态模式----State Pattern
- 算法 c语言 链式插入排序算法
- 【剑指offer】面试题43:1~n整数中1出现的次数
- Solr集群搭建详细过程
- Java Thread 总结
- Tomcat下面的配置在每次Eclipse编译后,修改好的配置会还原
- C++ STL中sort()排序函数详解
- 二分法查找算法
- ORA-06512: at "SYS.XMLTYPE" 问题记录
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)