【资料结构】引线的练习实作

引线的练习实作

规则

为达到节省叶节点指向NULL的空间浪费

说明

  • 1.在建立节点的同时,设置左右引线布林值为Ture。
  • 2.当节点有向下的子节点,将该位置引线值改为false。
  • 3.先利用中序追踪,建立阵列。
  • 4.从根节点开始向下追踪,遇到布林值为Ture时跳过,表示为引线节点。
  • 5.在实线节点时判断左右分支是否为引线节点,若是则将中序阵列的前後位置存入分支。

函式

void print(tree_p root) {
  printf("\n---------------------------------\n");
  printf("\nInorder:\n");
  new_search(root);
  inorder(root);
}
void inorder(tree_p root) {
  if (root != NULL) {
    if(root->t_left==false){
      inorder(root->left);
    }
    show_line(root);
    if (root->t_right == false) {
      inorder(root->right);
    }
  }
}
void show_line(tree_p point) {
  printf("\n----------%d----------", point->data);
  get_L(point);
  get_R(point);
}

结果

原树示意图:

结果显示:

LR为0表示该分支存在连接节点

LR为1表示该分支为NULL,於是引线连接回去

<<:  【资料结构】树的操作 -引线,堆积,二元搜寻树

>>:  Day 7 - 目前(传统)的机器学习三步骤(2)-关键特徵

Day 25 : 案例分享(7.4) 库存与制造 - 工单与工作中心

案例说明及适用场景 当有工单的需求时 每一个BOM表都有属於自己的制程,而一个产品可以多个BOM表 ...

[25] 用 python 刷 Leetcode: 155 min-stack

原始题目 Design a stack that supports push, pop, top, ...

今天来瞄一眼龙与雀的科技:知觉共享技术 Body-sharing

嘿 前天去看了龙与雀斑公主,音乐真的很好听,剧情烘托的还不错。但每当遇到这种网路分身的题材时,我总是...

Day 8. 声明式渲染-跟Vue说Hello

开始Hello Vue前先插播一个错误调试工具- Vue.js devtools 这个chrome浏...

Ruby基本介绍(八)Rspec幼稚园等级实作

DDU-DU DDU-DU~ 十几亿的观看次数...跟四十多亿次的某只MV还有一段距离XD 预防针:...