C++ 菜单树
时间: 2023-07-11 22:04:45 浏览: 79
菜单树可以使用树形结构来实现,每个节点代表一个菜单项,包含菜单项名称、子菜单等信息。以下是一个基本的 C++ 菜单树的实现示例:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 菜单项结构体
struct MenuItem {
string name; // 菜单项名称
vector<MenuItem> children; // 子菜单项
};
// 打印菜单项
void printMenuItem(const MenuItem& item, int level) {
// 打印空格以表示层级关系
for (int i = 0; i < level; i++) {
cout << " ";
}
// 打印菜单项名称
cout << "- " << item.name << endl;
// 打印子菜单项
for (const auto& child : item.children) {
printMenuItem(child, level + 1);
}
}
int main() {
// 创建菜单项
MenuItem root = {"Root", {
{"Item 1", {}},
{"Item 2", {
{"Subitem 1", {}},
{"Subitem 2", {}}
}},
{"Item 3", {}}
}};
// 打印菜单项
printMenuItem(root, 0);
return 0;
}
```
输出结果:
```
- Root
- Item 1
- Item 2
- Subitem 1
- Subitem 2
- Item 3
```
在本示例中,我们使用了结构体 `MenuItem` 来表示菜单项。每个菜单项包含菜单项名称和子菜单项,子菜单项也是一个 `MenuItem` 的向量。我们使用递归函数 `printMenuItem` 来打印菜单项及其子菜单项,其中 `level` 参数表示当前菜单项的层级关系。在函数中,我们首先打印若干空格以表示层级关系,然后打印菜单项名称,最后递归打印子菜单项。
你可以根据实际需要对菜单项结构体进行扩展,比如添加菜单项 ID、命令等属性。
阅读全文