用C语言按照先序遍历的方式创建一个二叉链表,然后编程实现二叉树的先序、中序和后序算法,分别以先序、中序和后序的方式输出之前创建的二叉链表
时间: 2024-12-17 17:25:09 浏览: 41
在C语言中,我们可以使用结构体来表示二叉链表节点,以及递归函数来实现二叉树的三种遍历方式。首先,我们先创建一个二叉链表节点:
```c
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} Node;
// 创建一个新节点并返回指针
Node* newNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
```
接下来,我们需要一个递归函数来实现先序遍历(根-左-右):
```c
void preorderTraversal(Node* root) {
if (root != NULL) {
printf("%d ", root->data); // 输出当前节点
preorderTraversal(root->left); // 遍历左子树
preorderTraversal(root-右-根)可以分别通过修改递归顺序来实现:
```c
void inorderTraversal(Node* root) {
if (root != NULL) {
inorderTraversal(root->left);
printf("%d ", root->data);
inorderTraversal(root->right);
}
}
void postorderTraversal(Node* root) {
if (root != NULL) {
postorderTraversal(root->left);
postorderTraversal(root->right);
printf("%d ", root->data);
}
}
```
现在,你可以使用`newNode`函数创建一个二叉链表,然后调用这三者之一来按照相应的顺序遍历它。
阅读全文
相关推荐


















