2024王道数据结构第二章链表第10题

该博客主要介绍如何将一个带头结点的单链表拆分为两个链表,其中一个包含原链表中序号为奇数的元素,另一个包含序号为偶数的元素,同时保持元素的相对顺序不变。通过定义新的链表头结点,使用工作指针遍历原链表,依次将奇数位置元素插入A链表,偶数位置元素插入B链表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
题目:将一个带头结点的单链表A分解为两个带头节点的单链表A和B,使得A表中含有原表中序号为奇数的元素,而B表中含有序号为偶数的元素,且保持相对顺序不变。
出自:王道p38.10
*/

//思路:准备A、B两链表的头结点,然后让工作指针p指向原来A链表的next(遍历),p不空时,每次摘下一个尾插到A,再摘下一个尾插到B。

//宏定义

#define ElemType int

//单链表定义

typedef struct LNode{
    ElemType val;
    struct LNode*next;
}*LinkList,LNode;

[注] 上述宏定义和结构体定义是答题时要写的答案,并不是代码实现时的定义,代码实现稍有不同,感兴趣可去“help.h”中查看。

//实现函数

LinkList_n* WD_38_10(LinkList_n head){
    LinkList_n*res=(LinkList_n*)malloc(sizeof(LinkList_n)*2);			//用来返回两个链表头结点 
    LinkList_n A=head;					
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值