山海科技发展网

📚二叉树的遍历(C语言实现) 🌟二叉树的遍历代码c语言

导读 在数据结构的世界里,二叉树是一种非常重要的非线性结构。它由节点组成,每个节点最多有两个子节点:左子节点和右子节点。二叉树的遍历是指...

在数据结构的世界里,二叉树是一种非常重要的非线性结构。它由节点组成,每个节点最多有两个子节点:左子节点和右子节点。二叉树的遍历是指按照某种顺序访问所有节点的过程,常见的遍历方式有前序遍历(根-左-右)、中序遍历(左-根-右)和后序遍历(左-右-根)。

以下是C语言实现二叉树遍历的一个简单示例👇

```c

include

include

struct Node {

int data;

struct Node left, right;

};

struct Node newNode(int data) {

struct Node node = (struct Node)malloc(sizeof(struct Node));

node->data = data;

node->left = node->right = NULL;

return node;

}

void preorder(struct Node root) {

if (root == NULL) return;

printf("%d ", root->data);

preorder(root->left);

preorder(root->right);

}

void inorder(struct Node root) {

if (root == NULL) return;

inorder(root->left);

printf("%d ", root->data);

inorder(root->right);

}

void postorder(struct Node root) {

if (root == NULL) return;

postorder(root->left);

postorder(root->right);

printf("%d ", root->data);

}

// 示例用法

int main() {

struct Node root = newNode(1);

root->left = newNode(2);

root->right = newNode(3);

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

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

printf("Preorder traversal: ");

preorder(root);

printf("\n");

printf("Inorder traversal: ");

inorder(root);

printf("\n");

printf("Postorder traversal: ");

postorder(root);

printf("\n");

return 0;

}

```

通过这段代码,我们可以轻松实现二叉树的三种遍历方式。掌握这些基础操作,对于学习更复杂的算法和数据结构非常重要!💡