用树的第一个儿子和下一个兄弟表示法来表示一个树。
树的节点结构为:
struct TreeNode{
TYPE element;//该节点的元素
TreeNode *firstChild;//指向该节点的第一个孩子
TreeNode *nextSibling;//指向该节点的兄弟节点
};
上图的第一个儿子和下一个兄弟表示法如下图所示:
树的遍历:采用前序遍历(先根节点,再左孩子,最后右孩子);
该表示法实现树的中序遍历和后序遍历不太方便。。
源代码:
/*************************************************************************
> File Name: tree_print.cpp
> Author:
> Mail:
> Created Time: 2016年04月05日 星期二 09时10分02秒
************************************************************************/
#include <iostream>
using namespace std;
#define TYPE char
//树的节点
struct TreeNode{
TYPE element;//该节点的元素
TreeNode *firstChild;//指向该节点的第一个孩子
TreeNode *nextSibling;//指向该节点的兄弟节点
};
class Tree{
public:
Tree(TreeNode * r = NULL):root(r){}
Tree(int node_num);
~Tree();
void addNode(int i, int j);
void preOrder();