C++实现树形数据结构
时间: 2023-11-14 21:05:37 浏览: 43
C语言中可以通过定义结构体来实现树形数据结构。在提供的代码中,Tree类的定义使用了一个TNode结构体来表示树节点,并通过指针连接各个节点。具体实现如下:
1. 首先,定义一个结构体TNode,包含数据成员和指向子节点和兄弟节点的指针。
2. 创建Tree类,包含私有成员root指针,表示根节点。
3. Tree类还包含构造函数和析构函数,用于初始化和销毁树。
4. 实现树的遍历方法,包括前序遍历和后序遍历,通过递归的方式遍历树的各个节点。
代码实现如下:
```c
const int Max = 20;
struct TNode {
char data;
TNode *firstchild, *rightsib;
};
class Tree {
public:
Tree();
~Tree() {
Release(root);
}
void PreOrder() {
PreOrder(root);
}
void PostOrder() {
PostOrder(root);
}
private:
TNode *root;
void Release(TNode *bt);
void PreOrder(TNode *bt);
void PostOrder(TNode *bt);
};
Tree::Tree() {
root = NULL;
}
void Tree::Release(TNode *bt) {
if (bt == NULL) {
return;
}
Release(bt->firstchild);
Release(bt->rightsib);
delete bt;
}
void Tree::PreOrder(TNode *bt) {
if (bt == NULL) {
return;
}
cout << bt->data;
PreOrder(bt->firstchild);
PreOrder(bt->rightsib);
}
void Tree::PostOrder(TNode *bt) {
if (bt == NULL) {
return;
}
PostOrder(bt->firstchild);
cout << bt->data;
PostOrder(bt->rightsib);
}
```