基于C语言实现的线性表拆分

Pubertyly

发布日期: 2019-01-19 19:39:34 浏览量: 1016
评分:
star star star star star star star star star_border star_border
*转载请注明来自write-bug.com

介绍

设有一个线性单链表,其结点值均为正整数,且按值从大到小链接。试写出一个算法,将该线性单链表分解成两个线性单链表,其中一个链表中的结点值均为奇数,而另一个链表中的结点值均为偶数,且这两个链表均按值从小到大链接。

1 解题思路

先建立一个结构体,结构体中包含数据域以及next的指针域。然后将原链表先通过冒泡排序倒置,再遍历倒置后的链表。如果数据是奇数的放入新的链表L2,如果是偶数放入新的链表L3,直到遍历完成。就成功拆分了原链表。

2 函数调用图

3 各函数功能

  1. // 建立线性表
  2. int createList (LNode *L);
  3. // 打印数据
  4. int print(LNode *L);
  5. // 对链表进行冒泡排序
  6. int sortList(LNode *L);
  7. // 将原线性表分开成两个线性表
  8. int splitList(LNode *L1, LNode *L2, LNode *L3);
  9. // 主函数,流程控制
  10. int main();

4 测试

上传的附件 cloud_download 线性表拆分.7z ( 194.99kb, 16次下载 )
error_outline 下载需要7点积分

发送私信

走在一起是缘分,一起在走是幸福

18
文章数
20
评论数
最近文章
eject