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

以下面这棵二叉树为例。

对应的顺序存储结构为:

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

a

b

c

\0

\0

d

e

\0

\0

\0

\0

\0

\0

\0

\0

很遗憾,我没有想到怎样写成泛型的模板类。

#include "stdafx.h"#include<iostream>
using namespace std;class tree
{//基于顺序表的二叉树char elem[100];int length;public:tree(){//构造函数,一棵静态二叉树elem[1] = 'a';elem[2] = 'b'; elem[3] = 'c'; elem[4] = '\0';    elem[5] = '\0'; elem[6] = 'd';    elem[7] = 'e'; elem[8] = '\0';    elem[9] = '\0'; elem[10] = '\0';  elem[11] = '\0';elem[12] = '\0';  elem[13] = '\0'; elem[14] = '\0'; elem[15] = '\0';}void preTraverse(int root){//先根遍历if (elem[root]!='\0'){cout << elem[root]<< " ";preTraverse(root*2);preTraverse(root*2+1);}}void preTraverse(){//先根遍历preTraverse(1);}void InTraverse(int root){//中根遍历if (elem[root]!='\0'){InTraverse(root*2);cout << elem[root] << " ";InTraverse(root*2+1);}}void InTraverse(){InTraverse(1);}void postTraverse(int root){//后根遍历if (elem[root] != '\0'){postTraverse(root*2);postTraverse(root*2+1);cout << elem[root]<< " ";}}void postTraverse(){postTraverse(1);}};int main()
{tree t;t.preTraverse();cout << endl;t.InTraverse();cout << endl;t.postTraverse();cout << endl;return 0;
}

DS007-二叉树-顺序表表示法-先根-中根-后根遍历相关推荐

  1. DS007-二叉树-伪指针表示法-先根-中根-后根遍历

    本篇介绍二叉树的伪指针表示法,及其先.中.后根遍历. 以下面这棵二叉树为例. 对应的伪指针存储结构为: 整体是一个顺序表,每个元素是一个结构体,包含本身元素,左孩子的下标,右孩子的下标. 也可以包含双 ...

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

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

  3. 顺序表-顺序表表示集合-差集(for + while ,不断遍历)

    顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 差集是什么意思? C ...

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

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

  5. 顺序表基本操作在主函数中的实现

    #include<iostream> #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define MAXSIZE 100 using ...

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

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

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

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

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

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

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

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

最新文章

  1. Linux环境——MySQL安装及配置(8.0版本)
  2. z390可以装服务器系统吗,z390主板如何装win10系统 有什么方法
  3. xml解析: dom4j
  4. 2_4 FacadeMode.cpp 外观模式
  5. 交换机网络嗅探方法之欺骗交换机缓存
  6. 我将 20 年前开发的操作系统迁移到 .NET 6,竟然成功了!
  7. Notepad++在线安装使用JSON插件
  8. 迭代器 in C++
  9. 谁将赢得 5G 比赛?| 畅言
  10. 从零实现深度学习框架——优化反向传播相关代码
  11. simulink实现模糊PID控制
  12. 一般纳税人税额计算_一般纳税人企业缴税计算
  13. NOIP2016总结
  14. 高通modem启动过程_「msm8953」高通8953启动流程 - seo实验室
  15. e4a java_易安卓e4a编译生成R.java文件失败的解决办法
  16. python量化策略——改进的美林时钟轮动策略(三)
  17. 代码统计工具CLOC
  18. 002 Figuring in C/C++
  19. windows下如何查看本机所在局域网内所有可以访问的IP
  20. [SDOI2009]学校食堂Dining

热门文章

  1. 成都市城市信息模型标准化白皮书
  2. 安卓修改软件安装时间_安卓11正式发布
  3. 虾米音乐关闭,如何保存自己的收藏?
  4. python ubuntu word txt 转pdf_ubuntu 下 python 将ppt,word 转换为pdf.
  5. Logstash 输入源
  6. 大数据处理需要用到的编程语言开发语言
  7. 【愚公系列】2022年09月 微信小程序-webview内嵌网页的授权认证
  8. 金蝶K3帐套管理员密码忘记的解决办法
  9. eas帐套恢复(oracle)具体操作
  10. 使用python和flask建个人博客---增加一个新功能:点击主页图片的时候能够跳转到指定的网页