(1)编写完整程序,用先序遍历法建立二叉树的二叉链表存储结构,要求结点data域值类
时间: 2023-11-22 12:02:43 浏览: 179
用顺序和二叉链表作存储结构实现二叉排序树全代码.doc
5星 · 资源好评率100%
下面是用先序遍历法建立二叉树的二叉链表存储结构的完整程序:
```cpp
#include <iostream>
using namespace std;
struct Node { // 定义二叉树节点结构
char data;
Node* left;
Node* right;
};
// 先序遍历建立二叉树
Node* ConstructTree() {
char data;
cout << "输入一个节点的值(输入#表示空节点):";
cin >> data;
if (data == '#') { // 如果是空节点,返回空指针
return nullptr;
}
// 创建新节点,为其分配内存空间
Node* newNode = new Node;
newNode->data = data;
cout << "输入节点" << data << "的左子节点:";
newNode->left = ConstructTree(); // 递归创建左子树
cout << "输入节点" << data << "的右子节点:";
newNode->right = ConstructTree(); // 递归创建右子树
return newNode; // 返回新建立的节点
}
int main() {
Node* root = ConstructTree(); // 创建二叉树
// 输出二叉树的先序遍历结果
cout << "二叉树的先序遍历结果为:";
PreOrder(root); // 这里用了一个名为PreOrder的函数,用于先序遍历输出结果
cout << endl;
return 0;
}
```
以上程序中,主函数通过调用`ConstructTree`函数来建立二叉树,`ConstructTree`函数根据用户输入的节点值以及左右子节点的值来递归创建二叉树。最后,通过调用名为`PreOrder`的函数来先序遍历输出结果。
注意:以上代码只是用于演示建立二叉树的过程,实际应用中需根据自己的需求进一步完善和修改。
阅读全文