单链表的归并排序
来源:互联网 发布:怎么取消备案域名 编辑:程序博客网 时间:2024/06/03 14:53
简单的归并排序的例子
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <math.h>typedef struct S{ int num; struct S * next ;}LinkList;void initList_p(LinkList * );void initList_q (LinkList * q);LinkList * setList();void show (LinkList * );LinkList * Merge(LinkList * ,LinkList * );int main (){ LinkList * p = setList(); LinkList * q = setList(); initList_p (p); initList_q(q); printf("排序前的p: "); show(p); putchar ('\n'); printf("排序前的q: "); show(q); LinkList * result = Merge(p,q); printf("\n排序的结果: "); show (result); putchar ('\n'); system("pause"); return 0;}void initList_p(LinkList * s){ LinkList * m = s; for (int i = 1 ; i <= 10 ; i = i+2){ LinkList * temp = (LinkList * )malloc (sizeof(LinkList )); temp ->next = NULL; temp ->num = i; m->next = temp ; m = m->next ; }}void initList_q (LinkList * q){ LinkList * m = q; for (int i = 2 ; i <= 10 ; i= i+2){ LinkList * temp = (LinkList * )malloc (sizeof(LinkList )); temp ->next = NULL; temp ->num = i; m->next = temp ; m = m->next ; }}LinkList * setList(){ LinkList * a = (LinkList * )malloc (sizeof (LinkList )); a->next = NULL; return a ;}void show (LinkList * p ){ LinkList * temp = p ->next ; while (temp != NULL){ printf ("%d ",temp ->num ); temp = temp ->next ; }}LinkList * Merge (LinkList * a ,LinkList * b ){ LinkList * p ,*q ,* pre ; p = a->next ; q = b->next ; pre = a; free(b); while(p != NULL && q != NULL){ if (p->num < q->num ){ pre = p ; p = p ->next ; }else { b = q ; q = q->next ; pre ->next = b; b ->next = p; pre = pre ->next ; } } if(q != NULL){ pre ->next = q; } return a;}
0 0
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 自然归并排序和单链表实现的归并排序
- 单链表的排序(归并排序)
- 单链表的快速排序和归并排序
- 用归并排序实现单链表的排序
- 单链表的归并排序和插入排序
- 归并排序以及归并排序的优化
- 单链表的排序 快速排序 归并排序 quicksort mergesort
- 单链表的归并、快速排序 C++
- Yii2-用属性的方式来访问类的一个方法
- 【Java多线程与并发库】7.多个线程之间共享数据的方式探讨
- Java EE学习记录(一)
- googletest 学习记录
- bzoj1345 序列问题sequence
- 单链表的归并排序
- OpenCv入门之安装篇(win10+vs2013)
- Java API——String类
- 【Java多线程与并发库】8.java5线程并发库之线程池的应用
- Spring 注解 Demo
- CreateThread,_beginthread与AfxbeginThread 的区别 (转载自jogholy的博客)
- C#获取方法名
- maven学习笔记
- bzoj 2541: [Ctsc2000]冰原探险 (bfs+建图)