/** * 用链表实现 王道P40 T10 * * ①算法思想: * 设置 int 型变量 count 用于判断序号的奇偶性, * 若为奇数,则留在A中,若为偶数,则放入B中。 * * ②数据结构: * typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkList; * * ③算法设计 */ #include <stdio.h> #include <iostream> typedef struct LNode{ int data; struct LNode* next; }LNode,*LinkList; LinkList SplitABFromA(LinkList &A){ LinkList B = (LinkList)malloc(sizeof(LNode)); LinkList p = A -> next,q = B; LinkList pre = A;//pre为p的前驱 int count = 1; while(p){ if(count % 2 != 0){//奇数 pre = p; p = p -> next; }else{//偶数 pre -> next = p -> next; q -> next = p; q = p; p = pre -> next; } count ; } q -> next =NULL; return B; }