创建一个链表,并这个链表拆分成为两个链表的示例程序,将以下代码保存到一个源文件中:split_linked_list.c, 如下所示 –

#include #include struct node { int data; struct node *next; }; struct node *even = NULL; struct node *odd = NULL; struct node *list = NULL; //Create Linked List void insert(int data) { // Allocate memory for new node; struct node *link = (struct node*) malloc(sizeof(struct node)); struct node *current; link->data = data; link->next = NULL; if (list == NULL) { list = link; return; } current = list; while (current->next != NULL) current = current->next; // Insert link at the end of the list current->next = link; } void display(struct node *head) { struct node *ptr = head; printf("[head] =>"); //start from the beginning while (ptr != NULL) { printf(" %d =>", ptr->data); ptr = ptr->next; } printf(" [null]n"); } void split_list() { // Allocate memory for new node; struct node *link; struct node *current; while (list != NULL) { struct node *link = (struct node*) malloc(sizeof(struct node)); link->data = list->data; link->next = NULL; if (list->data % 2 == 0) { if (even == NULL) { even = link; list = list->next; continue; } else { current = even; while (current->next != NULL) current = current->next; // Insert link at the end of the list current->next = link; } list = list->next; } else { if (odd == NULL) { odd = link; list = list->next; continue; } else { current = odd; while (current->next != NULL) current = current->next; // Insert link at the end of the list current->next = link; } list = list->next; } } } int main() { int i; for (i = 1; i <= 10; i++) insert(i); printf("Complete list: n"); display(list); split_list(); printf("nOdd : "); display(odd); printf("Even : "); display(even); return 0; }

执行上面程序,得到以下结果 –

Complete list: [head] => 1 => 2 => 3 => 4 => 5 => 6 => 7 => 8 => 9 => 10 => [null] Odd : [head] => 1 => 3 => 5 => 7 => 9 => [null] Even : [head] => 2 => 4 => 6 => 8 => 10 => [null]

¥ 我要打赏 纠错/补充 收藏

c语言链表拆分,C语言拆分链表程序相关推荐

  1. c语言饭卡管理系统链表文件,C语言《学生信息管理系统》链表+文件操作

    今天带来的是一个链表版本的<学生信息管理系统>,功能包括:添加.显示.查询.删除.保存.读取,等功能模块,链表是C语言的进阶内容,希望大家好好学习,这里的代码可能会有一些瑕疵,希望大家提供 ...

  2. 用c语言描述单链表的数据类型,数据结构—单链表(类C语言描述)

    单链表 1.链接存储方法 链接方式存储的线性表简称为链表(Linked List).     链表的具体存储表示为: ① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不 ...

  3. 十字交叉链表c语言,C语言课程设计报告—十字交叉链表的应用.doc

    C语言课程设计报告-十字交叉链表的应用 PAGE \* MERGEFORMAT 13 华中科技大学计算机科学与技术学院 C语言程序设计课程设计实验报告 题目:水产品养殖信息管理系统 专业: 计算机科学 ...

  4. Algorithm:C++语言实现之链表相关算法(链表相加、链表的部分翻转、链表划分、链表去重、重复元素全部删除)

    Algorithm:C++语言实现之链表相关算法(链表相加.链表的部分翻转.链表划分.链表去重.重复元素全部删除) 目录 一.链表 1.1.链表相加 1.2.链表相加 2.1.链表的部分翻转 2.2. ...

  5. c语言 链表 库,玩转C链表

    链表是C语言编程中常用的数据结构,比如我们要建一个整数链表,一般可能这么定义: struct int_node { int val; struct int_node *next; }; 为了实现链表的 ...

  6. 单向链表的C语言实现与基本操作

    本文的主要内容目录: 一.单向链表的C语言实现 二.单向链表的基本操作 一.单向链表的C语言实现 链表作为一种基本的数据结构在程序开发过程当中经常会使用到.对C语言来说链表的实现主要依靠结构体和指针, ...

  7. 成绩管理单链表文件c语言,c语言学生信息管理完整.docx

    学生信息管理系统 本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉 C 语言的文件和单链表的各种基本操作.本程序中涉及结构体.单链表.文件等方面的知 识.通过本程序的训练,使学 ...

  8. c语言链表查找的代码与题目,链表的C语言实现之单链表的查找运算_c语言

    建立了一个单链表之后,如果要进行一些如插入.删除等操作该怎么办?所以还须掌握一些单链表的基本算法,来实现这些操作.单链表的基本运算包括:查找.插入和删除.下面我们就一一介绍这三种基本运算的算法,并结合 ...

  9. 逆置单链表c语言程序,(数据结构C语言版)顺序表和单链表的逆置

    <(数据结构C语言版)顺序表和单链表的逆置>由会员分享,可在线阅读,更多相关<(数据结构C语言版)顺序表和单链表的逆置(7页珍藏版)>请在人人文库网上搜索. 1.实验1-1顺序 ...

最新文章

  1. php+管道+pipe管道,C++ 匿名管道执行DOS命令
  2. linux 环境下配置ftp服务器
  3. ocp 042 第十二章:主动维护
  4. ionic view 视图
  5. BZOJ 2243 染色(树链剖分好题)
  6. c语言源程序文件.c如何保存,急求如何将下列C语言程序数据存储到文件中?
  7. 浅谈LINQ to SQL集成数据库语言优劣
  8. H264中I、B、P帧编码原理及pts和dts分析
  9. 【VB】StrConv函数.
  10. 如何修改音乐的匹配字数
  11. Hadoop集群搭建过程中ssh免密码登录(二)
  12. 修改mongodb oplog size
  13. 人工智能、大数据、云计算概念
  14. RFID医疗废物管理系统解决方案-RFID技术的医疗废弃物管理系统
  15. Excel插入复选框
  16. mac上安装linux双系统,怎么在台式一体机上安装双系统?
  17. codeforces 158E. Phone Talks(dp)
  18. [zz]用三阶贝塞尔曲线(贝兹曲线)拟合劣圆弧的公式(附伪代码)
  19. 自己动手「焊」键盘,使用Python编写,一键放连招不在话下!
  20. 前端原生下载excel表格

热门文章

  1. SpringMvc解决跨域问题
  2. C#中使用的yield关键字是什么?
  3. javascript操作select下拉列表框的一点小经验
  4. Go实现简单的K-V存储
  5. 谁说LINQ复杂查询不支持返回实名类型~复杂结果集中再使用复杂结果集
  6. 坑中速记整理! 使用 kotlin 写第一个 ReactNative Android 模块
  7. Laravel5.4重新登陆跳转到登陆前页面的原理和实现
  8. 《大数据的“道”“术”“释”》----读书摘录+思考
  9. 关于webrtc视频会议的解决方案
  10. 解决 MSChart控件 X轴坐标显示不全的问题