c语言二叉树怎么创建与遍历

   2024-10-25 6340
核心提示:在C语言中,可以使用结构体来表示二叉树节点,然后通过递归的方式来创建和遍历二叉树。首先定义一个结构体表示二叉树节点:struc

在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;}

这样就可以创建一个二叉树并进行遍历操作。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号