利用二叉树字符串创建二叉树的二叉链式存储结构的代码
时间: 2023-11-24 21:06:09 浏览: 113
二叉树的链式存储
以下是使用 C++ 语言实现的利用二叉树字符串创建二叉树的二叉链式存储结构代码:
```C++
#include <iostream>
#include <cstring>
using namespace std;
// 定义二叉树结点结构体
struct Node {
char value; // 节点值
Node* left; // 左子树指针
Node* right; // 右子树指针
};
// 创建一个新的节点
Node* createNode(char value) {
Node* node = new Node();
node->value = value;
node->left = NULL;
node->right = NULL;
return node;
}
// 利用二叉树字符串创建二叉树
Node* createBinaryTree(string str) {
Node* root = NULL;
Node* current = NULL;
// 遍历字符串中的每一个字符,创建二叉树
for(int i = 0; i<str.length(); i++){
char c = str[i];
if (c == '(') {
current = current->left ? current->right : current->left;
} else if (c == ')') {
current = current->parent;
} else if (c != ',') {
Node* node = createNode(c);
if (root == NULL) {
root = node;
} else if (current) {
if (!current->left) {
current->left = node;
} else {
current->right = node;
}
}
node->parent = current;
}
}
return root;
}
```
以上代码实现的功能是:根据二叉树字符串创建一个二叉链式存储结构的二叉树,并返回二叉树的根节点。
阅读全文