用c++编写程序实现创建二叉链表树,,并按三种方式遍历
时间: 2023-10-31 07:03:25 浏览: 160
创建二叉链表树的程序可以使用C语言编写,具体步骤如下:
1. 定义二叉树的数据结构
```c
typedef struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
```
2. 编写函数用于创建二叉链表树
```c
TreeNode* CreateBinaryTree() {
int data;
scanf("%d", &data);
if (data == -1) { // -1表示空节点
return NULL;
}
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
newNode->data = data;
newNode->left = CreateBinaryTree(); // 递归创建左子树
newNode->right = CreateBinaryTree(); // 递归创建右子树
return newNode;
}
```
3. 定义三种遍历方式的函数:前序遍历、中序遍历、后序遍历
```c
void PreOrderTraversal(TreeNode* root) {
if (root) {
printf("%d ", root->data); // 先访问根节点
PreOrderTraversal(root->left); // 再前序遍历左子树
PreOrderTraversal(root->right); // 最后前序遍历右子树
}
}
void InOrderTraversal(TreeNode* root) {
if (root) {
InOrderTraversal(root->left); // 先中序遍历左子树
printf("%d ", root->data); // 再访问根节点
InOrderTraversal(root->right); // 最后中序遍历右子树
}
}
void PostOrderTraversal(TreeNode* root) {
if (root) {
PostOrderTraversal(root->left); // 先后序遍历左子树
PostOrderTraversal(root->right); // 再后序遍历右子树
printf("%d ", root->data); // 最后访问根节点
}
}
```
4. 在主函数中调用上述函数实现二叉链表树的创建和遍历
```c
int main() {
TreeNode* root = CreateBinaryTree(); // 创建二叉链表树
printf("前序遍历结果:");
PreOrderTraversal(root); // 前序遍历
printf("\n中序遍历结果:");
InOrderTraversal(root); // 中序遍历
printf("\n后序遍历结果:");
PostOrderTraversal(root); // 后序遍历
return 0;
}
```
以上就是用C编写程序实现创建二叉链表树并按三种方式遍历的步骤。
阅读全文