用C语言实现二叉树前序遍历、中序遍历及后序遍历
时间: 2023-12-15 07:54:47 浏览: 105
C语言实现二叉树的前序、中序、后续遍历(递归法)
好的,我知道你想让我用C语言实现二叉树的前序遍历、中序遍历和后序遍历。下面是相应的代码:
首先,我们需要定义二叉树的节点结构:
```
typedef struct node{
int data;
struct node *left;
struct node *right;
}Node;
```
接下来,我们可以编写代码来创建节点:
```
Node* createNode(int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
```
对于二叉树的前序遍历,我们需要按照“根节点-左子树-右子树”的顺序来遍历二叉树。以下是前序遍历的代码:
```
void preOrderTraversal(Node* root) {
if(root != NULL) {
printf("%d ",root->data);
preOrderTraversal(root->left);
preOrderTraversal(root->right);
}
}
```
对于二叉树的中序遍历,我们需要按照“左子树-根节点-右子树”的顺序来遍历二叉树。以下是中序遍历的代码:
```
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);
}
}
```
这就是用C语言实现二叉树的前序遍历、中序遍历和后序遍历的代码。希望能对你有所帮助。如果你还有其他问题,欢迎继续向我提问。
阅读全文