12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
编程知识 时间:2024-12-04 17:03:37
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
在C语言中,可以使用结构体来表示二叉树节点,然后通过递归的方式来创建和遍历二叉树。首先定义一个结构体表示二叉树节点:struct TreeNode {int data;struct TreeNode* left;str
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
在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;}
这样就可以创建一个二叉树并进行遍历操作。
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19