数据结构总结

1.搜索快。O(log N)
2.
前序
递归算法:
void pre_order(treenode * node)
{
   if(node!=NULL){
          printf("node:%d",node->key);
          pre_order(node->left);
          pre_order(node->right);
   }
}

非递归算法:
void PreOrderUnrec(Bitree t)
{
    SqStack s;
    StackInit(s);
    p=t;
    
    while (p!=null || !StackEmpty(s))
    {
        while (p!=null)             //遍历左子树
        {
            visite(p->data);
            push(s,p);
            p=p->lchild;       
        }//endwhile
        
        if (!StackEmpty(s))         //通过下一次循环中的内嵌while实现右子树遍历
        {
            p=pop(s);
            p=p->rchild;        
        }//endif
                
    }//endwhile 
    
}//PreOrderUnrec




  1. void preOrder2(TNode* root)
  2. {
  3.     if ( root != NULL)
  4.     {
  5.         Stack S;
  6.         S.push(root);
  7.         while (!S.empty())
  8.         {
  9.             TNode* node = S.pop(); 
  10.             Visit(node);          // 先访问根节点,然后根节点就无需入栈了
  11.             S.push(node->right);  // 先push的是右节点,再是左节点
  12.             S.push(node->left);
  13.         }
  14.     }
  15. }



后序
中序







你可能感兴趣的:(数据结构总结)