#include <iostream>using namespace STD;structnode{intData Node *next; Node (intD =int()):d ATA (d), next (NULL) {}};classlist{ Public: List () {first = NULL; }voidInsert (intA[],intN) {Node *p = first; for(inti =0; I < n; i++) {Node *s =NewNode (A[i]);if(p = = NULL) {p = s; First = P; }Else{ while(P->next! = NULL) {p = p->next; } S->next = p->next; P->next = s; } } }voidSort () {sort (NULL, first); }voidSort (node *p, node *t) {if(T->next = = NULL) {first = t;return; }Else{Node *q = t->next; Sort (t, q);if(p = = NULL) {q->next = t; T->next = NULL;return; } q->next = t; } }//recursive reverse order single linked list. voidPrintf () {Node *p = first; while(P! = NULL) {cout<< P->data <<" "; p = p->next; }cout<< Endl; }Private: Node *first;};intMain () {ListList;intA[] = {1,2,3,4,5,6,7,8,9};List. Insert (A,sizeof(a)/sizeof(int));List. Sort ();List. Printf ();return 0;}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
C + + single-linked list recursive reverse order