C语音,函数padd的功能是调整pa指向的链表中结点的位置,使得所有x值为偶数的结点出现在链表的前半部,所有x值为奇数的结点出现在链表的后半部。

Posted yanglike111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语音,函数padd的功能是调整pa指向的链表中结点的位置,使得所有x值为偶数的结点出现在链表的前半部,所有x值为奇数的结点出现在链表的后半部。相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <stdlib.h>
typedef struct node
{int x;
    struct node *next;
}NODE;
NODE *padd(NODE *pa)
{
    NODE *p1,*p2,*p;
    p1=p2=pa;
    while(p1)
    {
        if(p1->x%2==0 && p1!=pa)
        {
            p=p1;p1=p1->next;
            p2->next=p1;
            p->next=pa;pa=p;
        }
        else {p2=p1;p1=p1->next;
        }
    }
    return pa;
}
int main(int argc, char *argv[]) {
    NODE a[10]={{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}},*ha=a,*p;
    int i;
    for(i=0;i<9;i++) a[i].next=&a[i+1];
    a[9].next=NULL;
    ha=padd(ha);
    p=ha;
    while(p)
        printf("%d ",p->x);p=p->next;
    putchar(
);
    return 0;
}

运行结果:技术图片

以上是关于C语音,函数padd的功能是调整pa指向的链表中结点的位置,使得所有x值为偶数的结点出现在链表的前半部,所有x值为奇数的结点出现在链表的后半部。的主要内容,如果未能解决你的问题,请参考以下文章

从c中的链表中删除名称时出错

Leetcode No.138 复制带随机指针的链表(回溯)

Leetcode No.138 复制带随机指针的链表(回溯)

C语言数据结构——链表

从 O(1) 中的链表中删除任何元素 - Java vs C++

[LeetCode]138复制带随机指针的链表