2013-07-19 5 views

답변

2

트리의 inorder 순회를 수행하고 목록에 데이터를 삽입 할 수 있습니다.

// Doubly linked list structure 
typedef struct node 
{ 
    int data; 
    struct node *prev; 
    struct node *next; 
}list; 

// Create node 
list* createnode(int x) 
{ 
    list* temp=(list*)malloc(sizeof(list)); 
    temp->data=x; 
    temp->prev=NULL; 
    temp->next=NULL; 
    return temp; 
} 

list *head=NULL; // To keep track of head 
list *ptr=NULL; //To keep track of last pointer in list 
Inorder(tree * root) 
{ 
    if(root==NULL) return; 
    Inorder(root->left); 
    // Insert head node 
    if(head==NULL) 
    { 
     head=createnode(root->data); 
     ptr=head; 
    } 
    // Insert other nodes and provide links 
    else 
    { 
     list *temp=createnode(root->data); 
     ptr->next=temp; 
     temp->prev=ptr; 
     ptr=temp; 
    } 
    Inorder(root->right); 
} 
관련 문제