二叉树线索化以及线索化的先序、中序、后序遍历(课后作业)
发布日期:2021-04-30 21:11:15 浏览次数:97 分类:精选文章

本文共 2649 字,大约阅读时间需要 8 分钟。

????????

1. ??????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????

2. ?????

2.1 ??????????

??????????????????????????????????????????????????

  • ??????????????????pre???????null?
  • ???????
    • ???????????????????????????????????????????1??
    • ??pre?????????pre????????????????????????????1??
    • ??pre??????
  • ???????????????????????????????????
  • ?????????????????
  • 2.2 ????

    public void prethreadedNodes(HeroNode node) {
    if (node == null) {
    return;
    }
    if (node.getLeft() == null) {
    node.setLeft(pre);
    node.setLeftType(1);
    }
    if (pre != null && pre.getRight() == null) {
    pre.setRight(node);
    pre.setRightType(1);
    }
    pre = node;
    if (node.getLeftType() != 1) {
    prethreadedNodes(node.getLeft());
    }
    if (node.getRightType() != 1) {
    prethreadedNodes(node.getRight());
    }
    }

    2.3 ????

    ????????????????????

    • 10?????????3?????????1????
    • ??????????????1 ? 3 ? 8 ? 10 ? 6 ? 14?

    3. ?????

    3.1 ??????????

    ???????????????????????????????????

  • ??????????????????????
  • ???????
    • ???????????????????????????????????????????1??
    • ??pre?????????pre????????????????????????????1??
    • ??pre??????
  • ????????????????????
  • 3.2 ????

    public void threadedNodes(HeroNode node) {
    if (node == null) {
    return;
    }
    threadedNodes(node.getLeft());
    if (node.getLeft() == null) {
    node.setLeft(pre);
    node.setLeftType(1);
    }
    if (pre != null && pre.getRight() == null) {
    pre.setRight(node);
    pre.setRightType(1);
    }
    pre = node;
    threadedNodes(node.getRight());
    }

    3.3 ????

    ????????????????????

    • 10?????????3?????????1????
    • ??????????????8 ? 3 ? 10 ? 1 ? 14 ? 6?

    4. ?????

    4.1 ??????????

    ????????????????????????????????????

  • ??????????????????????
  • ??????????????????????
  • ???????
    • ???????????????????????????????????????????1??
    • ??pre?????????pre????????????????????????????1??
    • ??pre??????
  • 4.2 ????

    public void lastthreadedNodes(HeroNode node) {
    if (node == null) {
    return;
    }
    lastthreadedNodes(node.getLeft());
    lastthreadedNodes(node.getRight());
    if (node.getLeft() == null) {
    node.setLeft(pre);
    node.setLeftType(1);
    }
    if (pre != null && pre.getRight() == null) {
    pre.setRight(node);
    pre.setRightType(1);
    }
    pre = node;
    }

    4.3 ????

    ????????????????????

    • 10?????????8?????????3????
    • ??????????????8 ? 10 ? 3 ? 14 ? 6 ? 1?

    5. ??

    ???????????????????????????????????????????????????????????????????????????????????????

    上一篇:Hadoop之HDFS:Hadoop分布式文件系统--具体知识点
    下一篇:Java全栈学习:JavaScript---JSON

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2026年06月13日 12时39分41秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章