트 리 는 확장 순서 에 따라 이 진 트 리 와 비 재 귀적 사 이 를 만 듭 니 다.

2199 단어 잡다 한 문제
이 부분 은 데이터 구조의 가장자리 부분 에 대한 이해 이다.
#include 
#include
 using namespace std;
 struct node
 {
     char data;
     node *leftchild;
     node *rightchild;
};
void Create(node *&p)//           
{
    char ch;
    cin>>ch;
    if (ch=='#')
        p=NULL;
    else
    {
        p=new node;
        p->data=ch;
        Create(p->leftchild);
        Create(p->rightchild);
    }
}
void PreOrder(node *root)
{
    stacks;
    node *p;
    s.push(NULL);
    p=root;
    while(!s.empty())
    {
        if (p==NULL)
        break;
       cout<data<rightchild!=NULL)//        ,        
            s.push(p->rightchild);
       if (p->leftchild!=NULL)//        ,               
          p=p->leftchild;
       else//       ,            
          {
           p=s.top();
           s.pop();
          }
    }
}
void PosrOrder(node *root)//               (    ,    ,            ),             ,           ,        ,          ,     ,            
//          ,         ,                 ,              ,          ,                ,           
{
    node *p=root;
    stacks;
   while(p||!s.empty())//         ,            (             ),    p      ,      p             ,    ,    p            ,        
    {
       if (p)
       {
        s.push(p);
        p=p->leftchild;
       }
       else//   ,          
       {
           p=s.top();
           s.pop();
           cout<data<rightchild;
       }
    }

}
int main()
{
    node *root;
    Create(root);
    cout<

제 가 먼저 옮 겨 다 니 는 코드 가 복잡 하 다 는 것 은 의심의 여지 가 없습니다.
void PreOrderTraverse(BTNode *T, Status (*visit)(ElementType e))
{
    BTNode *stack[MAX_SIZE], *p;
    int top = -1;
    if(T != NULL)    {
        stack[++top] = T;
        while(top > -1)
        {
            p = stack[top--];
            visit(p->data);
            if(p->rchild != NULL)
            {
                stack[++top] = p->rchild;
            }
            if(p->lchild != NULL)
            {
                stack[++top] = p->lchild;
            }
        }
    }
}

좋은 웹페이지 즐겨찾기