c语言二叉树怎么创建与遍历
短信预约 -IT技能 免费直播动态提醒
在C语言中,可以使用结构体来表示二叉树节点,然后通过递归的方式来创建和遍历二叉树。
首先定义一个结构体表示二叉树节点:
struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
};
然后可以定义一个函数来创建二叉树节点:
struct TreeNode* createNode(int data) {
struct TreeNode* newNode = (struct TreeNode*)malloc(sizeof(struct TreeNode));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
接着可以定义一个函数来插入节点到二叉树中:
struct TreeNode* insertNode(struct TreeNode* root, int data) {
if (root == NULL) {
return createNode(data);
}
if (data < root->data) {
root->left = insertNode(root->left, data);
} else {
root->right = insertNode(root->right, data);
}
return root;
}
最后可以定义递归函数来遍历二叉树,包括前序遍历、中序遍历和后序遍历:
void preOrder(struct TreeNode* root) {
if (root == NULL) return;
printf("%d ", root->data);
preOrder(root->left);
preOrder(root->right);
}
void inOrder(struct TreeNode* root) {
if (root == NULL) return;
inOrder(root->left);
printf("%d ", root->data);
inOrder(root->right);
}
void postOrder(struct TreeNode* root) {
if (root == NULL) return;
postOrder(root->left);
postOrder(root->right);
printf("%d ", root->data);
}
使用这些函数,可以创建一个二叉树并进行遍历操作:
int main() {
struct TreeNode* root = NULL;
root = insertNode(root, 5);
insertNode(root, 3);
insertNode(root, 8);
insertNode(root, 2);
insertNode(root, 4);
insertNode(root, 7);
insertNode(root, 9);
printf("Preorder traversal: ");
preOrder(root);
printf("\n");
printf("Inorder traversal: ");
inOrder(root);
printf("\n");
printf("Postorder traversal: ");
postOrder(root);
printf("\n");
return 0;
}
这样就可以创建一个二叉树并进行遍历操作。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341