当前位置:网站首页 > 技术博客 > 正文

二叉树遍历 c语言



二叉树

是一种常用的

数据结构

,它的节点最多只有两个子节点。

二叉树

遍历

方式有三种,分别是前序

遍历

、中序

遍历

和后序

遍历

。下面是用

C语言 实现 二叉树 遍历

的代码:

```c

#include <stdio.h>

#include <stdlib.h>

typedef struct TreeNode {

int val;

struct TreeNode* left;

struct TreeNode* right;

} TreeNode;

// 创建一个新的节点

TreeNode* createNode(int val) {

TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));

node->val = val;

node->left = NULL;

node->right = NULL;

return node;

}

// 前序

遍历

void preorderTraversal(TreeNode* root) {

if (root == NULL) {

return;

}

printf("%d ", root->val); // 先访问根节点

preorderTraversal(root->left); // 再访问左子树

preorderTraversal(root->right); // 最后访问右子树

}

// 中序

遍历

void inorderTraversal(TreeNode* root) {

if (root == NULL) {

return;

}

inorderTraversal(root->left); // 先访问左子树

printf("%d ", root->val); // 再访问根节点

inorderTraversal(root->right); // 最后访问右子树

}

// 后序

遍历

void postorderTraversal(TreeNode* root) {

if (root == NULL) {

return;

}

postorderTraversal(root->left); // 先访问左子树

postorderTraversal(root->right); // 再访问右子树

printf("%d ", root->val); // 最后访问根节点

}

int main() {

// 创建一个

二叉树

TreeNode* root = createNode(1);

root->left = createNode(2);

root->right = createNode(3);

root->left->left = createNode(4);

root->left->right = createNode(5);

root->right->left = createNode(6);

root->right->right = createNode(7);

printf("前序

遍历

结果:");

preorderTraversal(root);

printf("

");

printf("中序

遍历

结果:");

inorderTraversal(root);

printf("

");

printf("后序

遍历

结果:");

postorderTraversal(root);

printf("

");

return 0;

}

  上面的代码中,首先定义了一个 二叉树 节点的结构体,并编写了一个创建节点的函数。接着,分别 实现 了前序 遍历 、中序 遍历 和后序 遍历 的函数。最后,在主函数中创建了一个 二叉树 ,并分别调用了三种 遍历 函数输出结果。

  • 上一篇: flook函数
  • 下一篇: 钟表指针是什么
  • 版权声明


    相关文章:

  • flook函数2024-11-21 12:29:59
  • 安全测试测什么2024-11-21 12:29:59
  • date_add()属于什么函数2024-11-21 12:29:59
  • mipi csi fpga2024-11-21 12:29:59
  • wsd端口的打印机是否不需要ip了2024-11-21 12:29:59
  • 钟表指针是什么2024-11-21 12:29:59
  • ubuntu ifconfig配置ip2024-11-21 12:29:59
  • ngui和ugui的区别2024-11-21 12:29:59
  • 优秀的vue移动端框架2024-11-21 12:29:59
  • 网线568c怎么接水晶头2024-11-21 12:29:59