数据结构c++二叉链表遍历,三叉链表定义

1.前序遍历

template<typename DataType>
void BiTree<DataType>::PreOrder(BiNode<DataType>*bt)
{
    
    
    if(bt==nullptr)return;    //递归调用的结束条件
    else{
    
    
       cout<<bt->data<<"\t";   //访问根节点bt的数据域
       PreOrder(bt->lchild);    //前序递归遍历bt的左子树
       PreOrder(bt->rchild);    //前序递归遍历bt的右子树
       }
 }

2.中序遍历

PreOrder(bt->lchild);
cout<<bt->data<<"\t";
PreOrder(bt->rchild);

3.后序遍历

PreOrder(bt->lchild);
PreOrder(bt->rchild);
cout<<bt->data<<"\t";

4.层序遍历

template<typename DataType>
void BiTree<DataType>::LevelOrder()
{
    
    
    BiNode<DataType>*Q[100],*q=nullptr;
    int front=-1,rear=-1;
    if(root==nullptr)return;
    Q[++rear]=root;     //根指针入队
    while(front!=rear)    //当队列非空时
    {
    
    
        q=Q[++front];     //出队
        cout<<q->data<<"\t";
        if(q->lchild!=nullptr)  Q[++rear]=q->lchild;
        if(q->rchild!=nullptr)
Q[++rear]=q->rchild;
    }
}

三叉链表结构定义

template<typename DataType>
struct TriNode
{
    
    
    DataType data;
    TriNode<DataType>*lchild,*rchild,*parent;
};

猜你喜欢

转载自blog.csdn.net/qq_51344334/article/details/119914902