DS007-二叉树-伪指针表示法-先根-中根-后根遍历
本篇介绍二叉树的伪指针表示法,及其先、中、后根遍历。
以下面这棵二叉树为例。
对应的伪指针存储结构为:
整体是一个顺序表,每个元素是一个结构体,包含本身元素,左孩子的下标,右孩子的下标。
也可以包含双亲结点的下标,此例没有包含。
参考代码如下:
#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-二叉树-伪指针表示法-先根-中根-后根遍历相关推荐
- DS007-二叉树-顺序表表示法-先根-中根-后根遍历
本篇介绍二叉树的顺序表表示法,及其先.中.后根遍历. 以下面这棵二叉树为例. 对应的顺序存储结构为: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a b c \0 ...
- DS007-二叉树-二叉链表表示法-先根-中根-后根遍历
本篇介绍二叉树的二叉链表表示法,及其先.中.后根遍历. 以下面这棵二叉树为例. #include "stdafx.h"#include<iostream> using ...
- 二叉树之孩子表示法以及前中后三种遍历法
文章目录 题目 思路 AC代码 题目 思路 对于每一个结点,我们可以构造一个结构体变量struct node,其中包含数据.左孩子结点.右孩子结点.然后依次存入即可,遍历的话,使用简单的递归遍历即可. ...
- 二叉树的先根,中根,层次遍历以及还原-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, ...
- 二叉树非递归dfs——简单思路搞定前中后序遍历
前言:相信很多同学都被二叉树非递归dfs的前中后序遍历方法弄的头疼.网上的答案,什么前中后序遍历各有一套写法,还有什么一个栈的写法,两个栈的写法.看起来能理解,一闭眼自己写都记不住.今天介绍一种用一种 ...
- 二叉树链表结构表示法
二叉树链表的结构声明: struct tree { int data; struct tree *left; stryct tree *right; }; typedef struct tree t ...
最新文章
- 哈佛新冠论文用百度写,川普很满意,英国媒体BBC都看不下去:好歹搜索方法要用对呀!...
- spacy如何安装最匹配的版本正规文档en_core_web
- linux mysql 大页_Linux HugePages及MySQL 大页配置
- java feature get_Java ShapeFeature.getLocations方法代码示例
- 【数据结构】排序算法及优化整理
- 表白代码c语言_这段代码怎么啦?居然瞬间引起了所有程序员网友的注意!
- mysql slave 1062_MySQL主从不同步,出现1062错误解决方案
- mysql常用基础操作语法(八)~~多表查询合并结果和内连接查询【命令行模式】...
- 单片机modbus rtu通讯_【原创】永宏PLC系列RS485通讯方式
- 计算机小白可以学python吗_非计算机专业小白如何系统学Python语言
- Labview与三菱PLC通讯 (2)
- 点播系统加服务器加投影加音响,打造真实家庭影院 投影机+音响巧搭配
- 【Git】分支概念及操作
- matlab solve 警告,当发出警告时令测试失败的插件
- 广州市南沙区2021-2022学年九年级第一学期期末考试英语试题
- ISE中启动modelsim时出现了下面的错误
- HSDPA、HSUPA、HSPA、HSPA+、WCDMA它们什麽关系
- Floyed Practice
- 将 5G 应用于工业物联网
- Linux系统自带日志管理工具rsyslog简单介绍