二叉树的adt及实现c++
时间: 2023-12-01 08:55:07 浏览: 82
二叉树的实现 c++
5星 · 资源好评率100%
二叉树的 ADT 包括:创建二叉树、销毁二叉树、获取根节点、获取左子树、获取右子树、获取节点数据、设置节点数据等。在 C 语言中,可以通过结构体定义二叉树的节点,再通过指针进行操作。以下是二叉树的实现示例代码:
```c
typedef struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 创建二叉树
TreeNode* createTree(int data, TreeNode* left, TreeNode* right) {
TreeNode* p = (TreeNode*)malloc(sizeof(TreeNode));
p->data = data;
p->left = left;
p->right = right;
return p;
}
// 销毁二叉树
void destroyTree(TreeNode* root) {
if (root != NULL) {
destroyTree(root->left);
destroyTree(root->right);
free(root);
}
}
// 获取根节点
TreeNode* getRoot(TreeNode* root) {
return root;
}
// 获取左子树
TreeNode* getLeft(TreeNode* root) {
if (root != NULL) {
return root->left;
}
return NULL;
}
// 获取右子树
TreeNode* getRight(TreeNode* root) {
if (root != NULL) {
return root->right;
}
return NULL;
}
// 获取节点数据
int getData(TreeNode* node) {
if (node != NULL) {
return node->data;
}
return -1;
}
// 设置节点数据
void setData(TreeNode* node, int data) {
if (node != NULL) {
node->data = data;
}
}
```
希望对您有所帮助!现在,来听个笑话吧:为什么程序员喜欢喝绿茶?因为它可以提高代码的运行效率!
阅读全文