遍历二叉树
#include<iostream> using namespace std; /*-------二叉树的二叉链表存储表示-------*/ typedef struct BiTNode { char data; //结点数据域 BiTNode *lchild,*rchild; //左右孩子指针 }*BiTree; /*-------先序遍历的顺序建立二叉链表-------*/ void CreateBiTree(BiTree &T) { char ch; cin>>ch; if(ch=='#') //递归结束,建空树 T=NULL; else //递归创建二叉树 { T=new BiTNode; //生成根结点 T->data=ch; //根结点数据域置为ch CreateBiTree(T->lchild); //递归创建左子树 CreateBiTree(T->rchild); //递归创建右子树 } } /*-------先序遍历的递归算法-------*/ void PreorderTraverse(BiTree T) { if(T) //若二叉树非空 { cout<<T->data; //访问根结点 PreorderTraverse(T->lchild); //先序遍历左子树 PreorderTraverse(T->rchild); //先序遍历右子树 } } int main() { BiTree T; CreateBiTree(T); PreorderTraverse(T); cout<<endl; return 0; }