二叉链表实现二叉树c++
时间: 2023-06-29 14:17:31 浏览: 118
C++二叉树(二叉链表实现)
5星 · 资源好评率100%
以下是 C++ 实现二叉树的二叉链表结构:
```cpp
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
class BinaryTree {
public:
BinaryTree() {
root = nullptr;
}
void insert(int val) {
if (root == nullptr) {
root = new TreeNode(val);
return;
}
queue<TreeNode*> q;
q.push(root);
while (!q.empty()) {
TreeNode* cur = q.front();
q.pop();
if (cur->left == nullptr) {
cur->left = new TreeNode(val);
return;
}
else {
q.push(cur->left);
}
if (cur->right == nullptr) {
cur->right = new TreeNode(val);
return;
}
else {
q.push(cur->right);
}
}
}
void inorderTraversal() {
inorderTraversal(root);
}
private:
TreeNode* root;
void inorderTraversal(TreeNode* node) {
if (node == nullptr) {
return;
}
inorderTraversal(node->left);
cout << node->val << " ";
inorderTraversal(node->right);
}
};
```
这里实现了二叉树的插入和中序遍历操作。插入操作使用队列来实现层次遍历,确保新节点插入到树的最底层。中序遍历使用递归方式实现。
阅读全文