Rewrite requirement 1: Dynamically generate single-linked list storage
#include <cstdlib> #include <iostream>using namespace std;struct linknode{int data; struct Linknode *next;}; class num{int n; Public:num (int x) {n=x; } struct Linknode * descrease (); void Show (linknode* phead) {linknode* p; P=phead; p=p->next; cout<< "n=" <<n<<endl; while (p) {cout<<p->data; p=p->next; } cout<<endl; }};struct Linknode * NUM::d escrease () {linknode* phead=new linknode; phead->next=null; Linknode* p; linknode* Q; P=phead; int temp; int x=n; while (x) {linknode* newlinknode=new linknode; newlinknode->next=null; newlinknode->data=x%10; X=X/10; p->next=newlinknode; P=newlinknode; } for (P=phead;p!=null;p=p->next) for (Q=p->next;q!=null;q=q->next) {if (p->data<q->data) {temp=q->data;q->data=p->data;p->data=temp;} } return phead; } int main (int argc, char *argv[]) {int n; linknode* Phead; cout<< "Input N:"; cin>>n; Num num (n); Phead=num.descrease (); Num.show (Phead); System ("PAUSE"); return exit_success;}
Rewrite requirement 2: Sort by maximum, minimum, sub-maximum, sub-minimum interval
#include <cstdlib>#include<iostream>using namespacestd;structlinknode{intdata; structLinknode *next;};classnum{intN; intsum; Public: NUM (intx) {n=x; } structLinknode *descrease (); voidShow (linknode*phead) {Linknode*p; P=Phead; P=p->Next; cout<<"n="<<n<<Endl; cout<<"sum="<<sum<<Endl; while(p) {cout<<p->data; P=p->Next; } cout<<Endl; }};structLinknode *NUM::d escrease () {Linknode* phead=NewLinknode; Phead->next=NULL; Linknode*p; Linknode*Q; P=Phead; inttemp; intx=N; BOOLflag=true; Sum=0; while(x) {Linknode* newlinknode=NewLinknode; Newlinknode->next=NULL; Newlinknode->data=x%Ten; Sum+=newlinknode->data; X=x/Ten; P->next=Newlinknode; P=Newlinknode; } for(p=phead->next;p!=null;p=p->next) { if(flag) { for(q=p->next;q!=null;q=q->next) { if(p->data<q->data) {Temp=q->data; Q->data=p->data; P->data=temp; } } }Else{ for(q=p->next;q!=null;q=q->next) { if(p->data>q->data) {Temp=q->data; Q->data=p->data; P->data=temp; } }} flag=!Flag; } returnPhead; } intMainintargcChar*argv[]) { intN; Linknode*Phead; cout<<"Input N:"; CIN>>N; Num num (n); Phead=num.descrease (); Num.show (Phead); System ("PAUSE"); returnexit_success;}
C + + Programming practice Guidance 1.3 seeking arbitrary integer descending number rewriting requirement implementation