博客
关于我
单链表按序号奇偶分链表
阅读量:282 次
发布时间:2019-03-01

本文共 1470 字,大约阅读时间需要 4 分钟。

单链表按序号奇偶分割成两个子链表的实现

本文将介绍如何将一个带头结点的单链表按照序号的奇偶性分割成两个子链表headAheadB,并保持原有节点的顺序不变。

代码分析与实现

1. 创建链表

首先,我们需要创建一个链表。以下是创建链表的关键代码:

LinkList* CreaList() {    LinkList* head, *r, *s;    head = (struct LinkList*)malloc(sizeof(struct LinkList));    r = head;    int x;    scanf("%d", &x);    while (x != -100) {        s = (struct LinkList*)malloc(sizeof(struct LinkList));        s->data = x;        r->next = s;        r = s;        scanf("%d", &x);    }    r->next = NULL;    return head;}

2. 链表分割

接下来,我们需要将链表按照序号的奇偶性分割成两个子链表headAheadB。以下是实现代码:

LinkList* Selet(LinkList* head) {    LinkList* r, *s, *cur;    int i = 0;    LinkList* headB = (struct LinkList*)malloc(sizeof(struct LinkList));    r = head;    s = headB;    cur = head->next;    r->next = NULL;    while (cur != NULL) {        i++;        if (i % 2 != 0) {            r->next = cur;            r = cur;        } else {            s->next = cur;            s = cur;        }        cur = cur->next;    }    r->next = NULL;    s->next = NULL;    return headB;}

3. 打印链表

最后,我们需要打印链表。以下是打印函数:

void PrintList(LinkList* head) {    LinkList* p = head;    p = p->next;    while (p != NULL) {        printf("%d ", p->data);        p = p->next;    }    printf("\n");    return 0;}

主函数实现

int main() {    LinkList* head, *headA, *headB;    head = CreaList();    PrintList(head);    headB = Selet(head);    PrintList(head);    PrintList(headB);    return 0;}

总结

通过以上实现,我们可以轻松地将一个带头结点的单链表按照序号的奇偶性分割成两个子链表headAheadB,并保持原有节点的顺序不变。

转载地址:http://ijho.baihongyu.com/

你可能感兴趣的文章
Python 实现自动化测试 dubbo 协议接口
查看>>
python编程基础之十六
查看>>
python字符串input输入_Python input()函数:获取用户输入的字符串
查看>>
python 对json数据读取及保存与读取,对dump,dumps,load,loads的理解
查看>>
Python 对mysql数据库的操作
查看>>
Python 对象数据库列表
查看>>
Python 导入requests报错No module named requests
查看>>
Python 将JPEG图片批量改成jpg并删除JPEG图片
查看>>
python 将函数加到列表中进行调用
查看>>
python 将图片与字符串相互转换
查看>>
Python 嵌套字典全面指南
查看>>
Python 工具v简介
查看>>
Python编程入门指南:从零开始探索编程的奇妙世界
查看>>
python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem
查看>>
Python 常见的错误类型和继承关系
查看>>
python 常量_零基础学Python系列之一:Python的变量与常量
查看>>
Python 并发编程
查看>>
Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
查看>>
python 序列化操作
查看>>
Python 开发者,这 7 个 VS Code 插件极力推荐
查看>>