Advertisement

2025王道数据结构考研链表综合应用题(C语言)

阅读量:
复制代码
    /** * 设 C = {a1,b1,a2,b2···,an,bn} 为线性表,采用带头节点的单链表存放
     * 设计一个就地算法,将其拆分为两个线性表,使得A = {a1,a2···,an}
     * B = {bn,···,b2,b1}
     * @return
     * 算法思想,循环遍历链表C,
     * 采用尾插法将一个节点插入表A,这个节点为奇数号节点,
     * 采用头插法将下一个节点插入表B,这个节点为偶数号节点
     */
    Node separateNode(Node head){
    //创建B表表头
    Node headB = (Node)malloc(sizeof (struct ListNode));
    //B表初始化
    headB -> next = NULL;
    
    Node ra = head;
    Node p = head -> next,q;
    
    while(p){
        ra -> next = p;
        ra = p;
        p = p -> next;
        if(p){
            q = p -> next;
            p -> next = headB -> n

全部评论 (0)

还没有任何评论哟~