c语言数据结构树的遍历
在C语言中,我们通常使用结构体来表示树。首先,我们定义一个节点,它包含一个值和一个指向其子节点的指针数组。然后,我们可以使用递归函数来遍历树。
以下是一个简单的二叉树的遍历示例:
c复制代码
#include <stdio.h> | |
#include <stdlib.h> | |
typedef struct Node { | |
int value; | |
struct Node *left; | |
struct Node *right; | |
} Node; | |
Node* createNode(int value) { | |
Node* newNode = (Node*)malloc(sizeof(Node)); | |
if (newNode == NULL) { | |
printf("Memory error\n"); | |
return NULL; | |
} | |
newNode->value = value; | |
newNode->left = NULL; | |
newNode->right = NULL; | |
return newNode; | |
} | |
void inorderTraversal(Node* root) { | |
if (root != NULL) { | |
inorderTraversal(root->left); | |
printf("%d ", root->value); | |
inorderTraversal(root->right); | |
} | |
} | |
int main() { | |
Node* root = createNode(1); | |
root->left = createNode(2); | |
root->right = createNode(3); | |
root->left->left = createNode(4); | |
root->left->right = createNode(5); | |
printf("Inorder traversal: "); | |
inorderTraversal(root); | |
return 0; | |
} | |
在这个例子中,我们首先定义了一个名为Node的结构体,它包含一个整数值value,以及指向左子节点和右子节点的指针。然后我们定义了一个createNode函数,它用于创建一个新的节点。然后我们定义了一个inorderTraversal函数,它采用中序遍历方式遍历二叉树。最后,在主函数中,我们创建了一个简单的二叉树,并打印了它的中序遍历结果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论