本篇主要介绍二叉树的层次遍历算法。要点如下:
1、采用二叉链表存储结构。
2、手工构建一棵简单的静态二叉树。
3、基于stl的队列queue构建层次遍历算法。
一、测试用例中用到的二叉树
二、定义二叉链表的结点类型
struct node
{//树的结点结构。二叉链表表示法
char data;
node *lchild,*rchild;
};
三、构建静态二叉树
为了将精力集中到二叉树的层次遍历上,我们构建一棵静态的二叉树。
int main( )
{
node a,b,c,d,e;//定义5个结点作为二叉树的结点
//为每个结点赋值
a.data='a';a.lchild=a.rchild=0;
b.data='b';b.lchild=b.rchild=0;
c.data='c';c.lchild=c.rchild=0;
d.data='d';d.lchild=d.rchild=0;
e.data='e';e.lchild=e.rchild=0;
//将各个结点连接成树
a.lchild=&b;a.rchild=&c;
c.lchild=&d;c.rchild=&e;
}
四、层次遍历二叉树
自然语言描述如下:
1、访问根root; root入队列q。
2、当队列q不空时,重复以下步骤3-6,否则跳转到步骤7.
3、取队头元素放入t,