本篇介绍二叉树的伪指针表示法,及其先、中、后根遍历。

以下面这棵二叉树为例。

对应的伪指针存储结构为:

整体是一个顺序表,每个元素是一个结构体,包含本身元素,左孩子的下标,右孩子的下标。

也可以包含双亲结点的下标,此例没有包含。

参考代码如下:

#include "stdafx.h"#include<iostream>
using namespace std;template<typename T>class tree
{//基于伪指针的二叉树struct node{T data;int lchild;int rchild;};node *elem;int listsize;int length;public:tree(){//构造函数,一棵静态二叉树listsize = 100;elem = new node[listsize];elem[1] = { 'a',2,3 };elem[2] = { 'b',0,0 };elem[3] = { 'c',4,5 };elem[4] = { 'd',0,0 };elem[5] = { 'e',0,0 };length = 5;}void preTraverse(int root){//先根遍历if (root!=0){cout << elem[root].data<< " ";preTraverse(elem[root].lchild);preTraverse(elem[root].rchild);}}void preTraverse(){//先根遍历preTraverse(1);}void InTraverse(int root){//中根遍历if (root != 0){InTraverse(elem[root].lchild);cout << elem[root].data << " ";InTraverse(elem[root].rchild);}}void InTraverse(){InTraverse(1);}void postTraverse(int root){//后根遍历if (root != 0){postTraverse(elem[root].lchild);postTraverse(elem[root].rchild);cout << elem[root].data << " ";}}void postTraverse(){postTraverse(1);}};int main()
{tree<char> t;t.preTraverse();cout << endl;t.InTraverse();cout << endl;t.postTraverse();cout << endl;return 0;
}

DS007-二叉树-伪指针表示法-先根-中根-后根遍历相关推荐

  1. DS007-二叉树-顺序表表示法-先根-中根-后根遍历

    本篇介绍二叉树的顺序表表示法,及其先.中.后根遍历. 以下面这棵二叉树为例. 对应的顺序存储结构为: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a b c \0 ...

  2. DS007-二叉树-二叉链表表示法-先根-中根-后根遍历

    本篇介绍二叉树的二叉链表表示法,及其先.中.后根遍历. 以下面这棵二叉树为例. #include "stdafx.h"#include<iostream> using ...

  3. 二叉树之孩子表示法以及前中后三种遍历法

    文章目录 题目 思路 AC代码 题目 思路 对于每一个结点,我们可以构造一个结构体变量struct node,其中包含数据.左孩子结点.右孩子结点.然后依次存入即可,遍历的话,使用简单的递归遍历即可. ...

  4. 二叉树的先根,中根,层次遍历以及还原-java

    结点类Node.java /** Copyright (c) 2020.版权所有高金磊*/package orther.树相关;class Node<T>{T val;Node left, ...

  5. java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...

    前言 二叉树各种花里胡哨的算法题真的把我搞晕了,今天特地整理出一类有关二叉树的算法题,希望能帮助阅读到此文章的人,今后不再受此类题型的困扰. 一.题目类型 已知二叉树的两种遍历序列,请根据该序列构建二 ...

  6. 二叉树的先序创建、前中后序遍历(递归)C++

    二叉树定义 二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树.二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子 ...

  7. [Leedcode][JAVA][第199题][二叉树的右视图][BFS][DFS][前中后序遍历]

    [问题描述]199.二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, ...

  8. 二叉树非递归dfs——简单思路搞定前中后序遍历

    前言:相信很多同学都被二叉树非递归dfs的前中后序遍历方法弄的头疼.网上的答案,什么前中后序遍历各有一套写法,还有什么一个栈的写法,两个栈的写法.看起来能理解,一闭眼自己写都记不住.今天介绍一种用一种 ...

  9. 二叉树链表结构表示法

    二叉树链表的结构声明: struct  tree { int data; struct tree *left; stryct tree *right; }; typedef struct tree t ...

最新文章

  1. 哈佛新冠论文用百度写,川普很满意,英国媒体BBC都看不下去:好歹搜索方法要用对呀!...
  2. spacy如何安装最匹配的版本正规文档en_core_web
  3. linux mysql 大页_Linux HugePages及MySQL 大页配置
  4. java feature get_Java ShapeFeature.getLocations方法代码示例
  5. 【数据结构】排序算法及优化整理
  6. 表白代码c语言_这段代码怎么啦?居然瞬间引起了所有程序员网友的注意!
  7. mysql slave 1062_MySQL主从不同步,出现1062错误解决方案
  8. mysql常用基础操作语法(八)~~多表查询合并结果和内连接查询【命令行模式】...
  9. 单片机modbus rtu通讯_【原创】永宏PLC系列RS485通讯方式
  10. 计算机小白可以学python吗_非计算机专业小白如何系统学Python语言
  11. Labview与三菱PLC通讯 (2)
  12. 点播系统加服务器加投影加音响,打造真实家庭影院 投影机+音响巧搭配
  13. 【Git】分支概念及操作
  14. matlab solve 警告,当发出警告时令测试失败的插件
  15. 广州市南沙区2021-2022学年九年级第一学期期末考试英语试题
  16. ISE中启动modelsim时出现了下面的错误
  17. HSDPA、HSUPA、HSPA、HSPA+、WCDMA它们什麽关系
  18. Floyed Practice
  19. 将 5G 应用于工业物联网
  20. Linux系统自带日志管理工具rsyslog简单介绍

热门文章

  1. 特殊符号 UNICODE编码
  2. android强制分屏软件,第三方强制分屏app
  3. 微信订餐平台还有着独特的资源优势
  4. tf卡和sd卡引脚定义和性能指标
  5. LiveGBS流媒体平台GB/T28181常见问题-海康大华宇视监控摄像机NVR硬件设备注册不上来如何排查?
  6. 2-3树的插入和删除操作
  7. Win10提高有线网速的网速
  8. python计算机二级证书含金量到底高不高?
  9. Spring Boot体验
  10. 创建并运行一个 Spring Boot 项目