算法分析(54页)

将线性表以带头结点的单链表作存储结构,偶数放前,奇数放后;

代码如下:

#include<stdio.h>
typedef struct LNode    {
    int data ;
    struct LNode *next ;
}LNode , *LinkList ;
int main()  {
    LinkList L ;
    LinkList p = new LNode ;
    L = p ;
    int i = 1 ;
    for(; i < 10 ; i++) {
        LinkList s = new LNode ;
        s->data = i ;
        p->next = s ;
        p = s;
    }
    p->next = NULL ;
    LinkList q = L ;
    p = L->next ;
    while(p&&p->next)   {
        LinkList r = p->next ;
        p->next = r->next ;
        r->next = q->next ;
        q->next = r ;
        q = q->next ;
        p = p->next ;
    }
    p = L->next ;
    while(p)    {
        printf("%d ",p->data) ;
        p = p->next ;
    }
    return 0 ;
}

 由于思维定势,想了半天才想通……

原文地址:https://www.cnblogs.com/scottding/p/3842023.html