算法思想:第一个元素和最后一个元素对调,第二个元素和倒数第二个元素对调,……,依此类推。
void Reverse(int A[], int n){int i, t;for (i=0; i next; while (p != NULL){if (p->data == item) { q->next = p->next; free(p);p = q->next;} else {q = p;p = p->next;}}if (list->data == item){q = list;list = list->next; free(q);}} 3. 逆转线性链表 void Reverse(LinkList &list){LinkList p, q, r;p = list; q = NULL;while (p != NULL){r = q; q = p;p = p->next; q->next = r;}list = q;} 4. 复制线性链表(递归) LinkList Copy(LinkList lista){LinkList listb;if (lista == NULL) return NULL;else {listb = (LinkList)malloc(sizeof(LNode)); listb->data = lista->data;listb->next = Copy(lista->next); return listb;}} 5. 将两个按值有序排列的非空线性链表合并为一个按值有序的线性链表 LinkList MergeList(LinkList lista, LinkList listb){LinkList listc, p = lista, q = listb, r;// listc 指向 lista 和 listb 所指结点中较小者if (lista->data data) { listc = lista;r = lista;p = lista->next;} else {listc = listb; r = listb;q = listb->next;}while (p != NULL && q != NULL){if (p->data data) { r->next = p;r = p;p = p->next;} else {r->next = q; r = q;q = q->next;}}// 将剩余结点(即未参加比较的且已按升序排列的结点)