您的位置:首页 > 教育 > 培训 > C语言使用先序遍历创建二叉树

C语言使用先序遍历创建二叉树

2024/7/6 19:28:09 来源:https://blog.csdn.net/qq_35061546/article/details/140100079  浏览:    关键词:C语言使用先序遍历创建二叉树
#include<stdio.h>
#include<stdlib.h>typedef struct node
{int data;struct node * left;struct node * right;
} Node;Node * createNode(int val);
Node * createTree();
void freeTree(Node * node);void preOrder(Node * node);// 先序创建二叉树
int main() {Node * root = createTree();preOrder(root);freeTree(root);return 0;
}Node * createNode(int val) {Node * node = (Node *)malloc(sizeof(Node));if (node == NULL){printf("内存申请异常");exit(-1);}node->data = val;node->left = NULL;node->right = NULL;return node;
}Node * createTree() {int val = 0;printf("请输入创建树的数据 0为NULL:");scanf("%d", &val);if (val == 0){return NULL;}Node * node = createNode(val);printf("请输入%d的左子节点:", val);node->left = createTree();printf("请输入%d的右子节点:", val);node->right = createTree();return node;
}void preOrder(Node * node) {if (node == NULL){return;}printf("%d ", node->data);preOrder(node->left);preOrder(node->right);
}void freeTree(Node * root) {if (root == NULL){return;}freeTree(root->left);freeTree(root->right);free(root);
}

这棵树的结构为

运行效果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com