DS007-二叉树-顺序表表示法-先根-中根-后根遍历
本篇介绍二叉树的顺序表表示法,及其先、中、后根遍历。
以下面这棵二叉树为例。
对应的顺序存储结构为:
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-二叉树-顺序表表示法-先根-中根-后根遍历相关推荐
- DS007-二叉树-伪指针表示法-先根-中根-后根遍历
本篇介绍二叉树的伪指针表示法,及其先.中.后根遍历. 以下面这棵二叉树为例. 对应的伪指针存储结构为: 整体是一个顺序表,每个元素是一个结构体,包含本身元素,左孩子的下标,右孩子的下标. 也可以包含双 ...
- DS007-二叉树-二叉链表表示法-先根-中根-后根遍历
本篇介绍二叉树的二叉链表表示法,及其先.中.后根遍历. 以下面这棵二叉树为例. #include "stdafx.h"#include<iostream> using ...
- 顺序表-顺序表表示集合-差集(for + while ,不断遍历)
顺序表的存储结构: typedef struct{int data[Maxsize]; //存在顺序表中的元素int length; //存放顺序表的长度}SqList; 分析: 差集是什么意思? C ...
- 二叉树之孩子表示法以及前中后三种遍历法
文章目录 题目 思路 AC代码 题目 思路 对于每一个结点,我们可以构造一个结构体变量struct node,其中包含数据.左孩子结点.右孩子结点.然后依次存入即可,遍历的话,使用简单的递归遍历即可. ...
- 顺序表基本操作在主函数中的实现
#include<iostream> #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define MAXSIZE 100 using ...
- 二叉树的先根,中根,层次遍历以及还原-java
结点类Node.java /** Copyright (c) 2020.版权所有高金磊*/package orther.树相关;class Node<T>{T val;Node left, ...
- java二叉树合并_Java(树的前中后序遍历构造二叉树题型整合)前序和中序、中序和后序、前序和后序遍历序列构造二叉树算法整合归纳...
前言 二叉树各种花里胡哨的算法题真的把我搞晕了,今天特地整理出一类有关二叉树的算法题,希望能帮助阅读到此文章的人,今后不再受此类题型的困扰. 一.题目类型 已知二叉树的两种遍历序列,请根据该序列构建二 ...
- 二叉树的先序创建、前中后序遍历(递归)C++
二叉树定义 二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树.二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子 ...
- [Leedcode][JAVA][第199题][二叉树的右视图][BFS][DFS][前中后序遍历]
[问题描述]199.二叉树的右视图 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值.示例:输入: [1,2,3,null,5,null,4] 输出: [1, ...
最新文章
- Linux环境——MySQL安装及配置(8.0版本)
- z390可以装服务器系统吗,z390主板如何装win10系统 有什么方法
- xml解析: dom4j
- 2_4 FacadeMode.cpp 外观模式
- 交换机网络嗅探方法之欺骗交换机缓存
- 我将 20 年前开发的操作系统迁移到 .NET 6,竟然成功了!
- Notepad++在线安装使用JSON插件
- 迭代器 in C++
- 谁将赢得 5G 比赛?| 畅言
- 从零实现深度学习框架——优化反向传播相关代码
- simulink实现模糊PID控制
- 一般纳税人税额计算_一般纳税人企业缴税计算
- NOIP2016总结
- 高通modem启动过程_「msm8953」高通8953启动流程 - seo实验室
- e4a java_易安卓e4a编译生成R.java文件失败的解决办法
- python量化策略——改进的美林时钟轮动策略(三)
- 代码统计工具CLOC
- 002 Figuring in C/C++
- windows下如何查看本机所在局域网内所有可以访问的IP
- [SDOI2009]学校食堂Dining
热门文章
- 成都市城市信息模型标准化白皮书
- 安卓修改软件安装时间_安卓11正式发布
- 虾米音乐关闭,如何保存自己的收藏?
- python ubuntu word txt 转pdf_ubuntu 下 python 将ppt,word 转换为pdf.
- Logstash 输入源
- 大数据处理需要用到的编程语言开发语言
- 【愚公系列】2022年09月 微信小程序-webview内嵌网页的授权认证
- 金蝶K3帐套管理员密码忘记的解决办法
- eas帐套恢复(oracle)具体操作
- 使用python和flask建个人博客---增加一个新功能:点击主页图片的时候能够跳转到指定的网页