Test

来源:互联网 发布:外汇的算法 编辑:程序博客网 时间:2024/06/06 02:45
int ex01( LinkedList * lst, int x ){    assert( *lst != NULL );    int n = 0;    NodePtr p = ( *lst )->next;    NodePtr r = NULL, q = NULL;    NodePtr pre = NULL;    if( p == NULL ) return n;    // reverse small numbers    //    ( *lst )->next = NULL;    q = p;    while( p != NULL && p->data < x ) {        r = p->next;        p->next = ( *lst )->next;        ( *lst )->next = p;        p = r;    }    q->next = r; pre = q;    // skip nodes whose values are equal to x    //    while( p != NULL && p->data == x ) {        pre = p;        p = p->next;    }    while( p != NULL ) {        ++n;        x = p->data;        do {            // remove large even numbers            //            if( x % 2 == 0 ) {                pre->next = p->next;                delete p;                p = pre->next;            }            // make large odd numbers unique            //            else {                pre = p;                p = p->next;            }        } while( p != NULL && p->data == x );    }    return n;}

0 0