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

 

思路大概是:

/* 伪码 */

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

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

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

 

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

A1099 Build A Binary Search Tree (30 分)

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

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);
}

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

 

点击获取完整代码

 

相关文章:

  • 2021-07-20
  • 2022-12-23
  • 2022-01-15
  • 2022-12-23
  • 2022-03-02
  • 2021-09-26
  • 2021-04-17
  • 2022-01-17
猜你喜欢
  • 2021-11-30
  • 2022-12-23
  • 2021-12-15
  • 2021-08-29
  • 2021-11-01
  • 2021-09-04
  • 2021-08-19
相关资源
相似解决方案