A1099 Build A Binary Search Tree (30 分)

这道题就是所有树的知识点的集大成

 

思路大概是:

/* 伪码 */

//1. 利用下标建树————dfs()

//2. 填充树的数据域————先序遍历

//3. 输出————层序遍历

 

第一点,利用下标建树见题图。也就是先不管结点的数据域而先把指针域链接起来:

第二点,填充树结点数据域,观察可以发现先序遍历就是从小到大的有序序列,那么可以在先序遍历过程中给数据域赋值

void pre_order_traversal(tree_t* t) {
    if (t == NULL)    return;

    pre_order_traversal(t->left);
    t->data = int_keys[ptr++];
    pre_order_traversal(t->right);
}

第三点,层序遍历,直接套模板略

 

点击获取完整代码

 
posted @ 2021-02-21 22:03  幼麟  阅读(41)  评论(0编辑  收藏  举报