使用C语言实现用数组构建二叉树并遍历
标签:ret 实现 else creat void pre code 排列 ror
#include
typedef struct Node {
int data;
struct Node* lchild;
struct Node* rchild;
}Node;
//使用数组存放数据,注意是按照一层一层的排列,-1代表为空
int array[] = {1,2,3,4,5,6,7};
//构建二叉树
void createTree(Node **node,int index) {
if (index data = array[index-1];
createTree(&((*node)->lchild), index * 2);
createTree(&((*node)->rchild), index * 2 + 1);
}
}
else {
*node = NULL;
return;
}
}
void preOrder(Node* node) {
if (node != NULL) {
printf("%d ", node->data);
preOrder(node->lchild);
preOrder(node->rchild);
}
else {
return;
}
}
void midOrder(Node* node) {
if (node != NULL) {
midOrder(node->lchild);
printf("%d ", node->data);
midOrder(node->rchild);
}
else {
return;
}
}
void afterOrder(Node* node) {
if (node != NULL) {
afterOrder(node->lchild);
afterOrder(node->rchild);
printf("%d ", node->data);
}
else {
return;
}
}
int main(int argc, char* args[]){
Node* node_t;
createTree(&node_t,1);
preOrder(node_t);
printf("\n");
midOrder(node_t);
printf("\n");
afterOrder(node_t);
return 0;
}
使用C语言实现用数组构建二叉树并遍历
标签:ret 实现 else creat void pre code 排列 ror
原文地址:https://www.cnblogs.com/zhang-han/p/14026180.html
评论