ワンウェイチェーンテーブル逆シーケンス出力

1123 ワード

/*
           ,     
*/


#include
using namespace std;


struct Node;
typedef int dataType;
typedef struct Node *PtrNode;
typedef PtrNode List;
typedef PtrNode Position;

struct Node{
dataType data;
Position next;
};

class NumLink{
int num;//  
List list;
public:
NumLink(int n):num(n){
list=(List)malloc(sizeof(Node));
};
void reverseList();
void getList();
void show();
};


int main(){
NumLink num(3426);
num.getList();
num.show();
num.reverseList();
num.show();
return 0;
}

//        
void NumLink::getList(){
Position p,s;
int i=0;
p=list;
p->next=NULL;
int data=num;
while(data){
s=(List)malloc(sizeof(Node));
s->data=data%10;
data=data/10;
p->next=s;
p=s;
p->next=NULL;
i++;
}
}
//    
void NumLink::reverseList(){
if(list->next==NULL){
cout<next;
q=list->next->next;
t=NULL;
while(q!=NULL){
t=q->next;
q->next=p;
p=q;
q=t;
}
list->next->next = NULL;  /*     */  
list->next = p;           /*     */  
} 
}
void NumLink::show(){
if(list==NULL){
cout<next;
while(p){
cout<data;
p=p->next;
}
cout<