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

/*
题目:将一个带头结点的单链表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;							
    head=head->next;
    LinkList_n B=(LinkList_n)malloc(sizeof(LNode_n));					//新建头结点,用来指向偶数链			
    res[0]=A,res[1]=B;
    LNode_n*ra=A,*rb=B;													
    A

你可能感兴趣的:(数据结构,链表,算法,c语言)