设计一棵二叉树,并编程实现类定义中的各项功能,存入部分爱豆信息,并且实现查看爱豆信息,显示爱豆信息,删除爱豆信息,插入爱豆信息,求深度,输出叶子节点等功能。要求全部有输入,汉字输出。结点数据定义为字符型。用c++实现
时间: 2024-11-09 15:28:20 浏览: 37
二叉树数据结构在DNA计算机中的设计与实现
在C++中设计一棵二叉搜索树(BST,Binary Search Tree)用于存储爱豆的信息是一个常见的编程练习。首先,我们需要创建一个二叉树节点类`AidBeanNode`,包含一个字符类型的键(如爱豆名字)和指向两个子节点的指针。然后,我们构建`AidBeanTree`类,实现插入、查找、删除、显示信息、计算深度以及输出叶子节点的功能。
```cpp
#include <iostream>
using namespace std;
// 爱豆节点类
class AidBeanNode {
public:
char aid;
AidBeanNode* left;
AidBeanNode* right;
// 构造函数
AidBeanNode(char aid) : aid(aid), left(nullptr), right(nullptr) {}
};
// 二叉搜索树类
class AidBeanTree {
private:
AidBeanNode* root;
// 插入函数
void insert(AidBeanNode** node, char aid);
// 查找函数
bool search(AidBeanNode* node, char aid);
// 删除函数
void deleteNode(AidBeanNode** node, char aid);
// 显示节点信息
void displayNode(AidBeanNode* node);
// 计算节点深度
int depth(AidBeanNode* node);
// 输出叶子节点
void printLeaves(AidBeanNode* node);
public:
// 构造函数
AidBeanTree() : root(nullptr) {}
// 主要操作
void insertAidBean(string aid);
bool findAidBean(string aid);
void deleteAidBean(string aid);
void displayAllAids();
void computeDepth();
void printLeafAids();
};
// ... (在这里实现上述私有成员函数)
int main() {
AidBeanTree tree;
// 实际操作,例如:
tree.insertAidBean("易烊千玺");
tree.displayAllAids();
if (tree.findAidBean("王一博")) {
cout << "找到王一博" << endl;
} else {
cout << "未找到王一博" << endl;
}
// 其他操作...
return 0;
}
```
阅读全文