#include <iostream>
using namespace std;
typedef char ElemType;typedef struct BiNode {//节点的创建ElemType data;struct BiNode *lchild, *rchild;
} BiNode, *BiTree;void PreOrderTraverse(BiTree T) {//先序遍历if (T) {cout << T->data;PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchild);}
}void InOrderTraverse(BiTree T) {//中序遍历if (T) {InOrderTraverse(T->lchild);cout << T->data;InOrderTraverse(T->rchild);}
}void PostOrderTraverse(BiTree T) {//后序遍历if (T) {PostOrderTraverse(T->lchild);PostOrderTraverse(T->rchild);cout << T->data;}
}void CreateBiTree(BiTree &T) {//创建二叉树char ch;cin >> ch;if (ch == '#')T = NULL;else {T = new BiNode;T->data = ch;CreateBiTree(T->lchild);CreateBiTree(T->rchild);}
}void Copy(BiTree T, BiTree &NewT) {//复制出一个新的二叉树if (T == NULL) {NewT = NULL;return ;} else {NewT = new BiNode;NewT->data = T->data;Copy(T->lchild, NewT->lchild);Copy(T->rchild, NewT->rchild);}
}int Depth(BiTree T) {//求深度if (T == NULL)return 0;else {int m = Depth(T->lchild);int n = Depth(T->rchild);if (m > n)return (m + 1);elsereturn (n + 1);}
}int NodeCount(BiTree T) {//求节点的个数if (T == NULL)return 0;elsereturn NodeCount(T->lchild) + NodeCount(T->rchild) + 1;
}int LeafCount(BiTree T) {//求叶子的个数if (T == NULL)return 0;if (T->lchild == NULL && T->rchild == NULL)return 1;elsereturn LeafCount(T->lchild) + LeafCount(T->rchild);
}int main() {BiTree T;//创建一颗二叉树cout << "以先序遍历输入(以#结束)要存储的元素" << endl;CreateBiTree(T);cout << "先序遍历输出: ";PreOrderTraverse(T);cout<<endl;cout << "中序遍历输出: ";InOrderTraverse(T);cout<<endl;cout << "后序遍历输出" ;PostOrderTraverse(T);cout<<endl;cout << "该树的深度为: ";cout << Depth(T) << endl;cout << "该树的节点个数为: ";cout << NodeCount(T) << endl;cout << "该树的叶子个数为: ";cout << LeafCount(T) << endl;system("pause");return 0;
}

测试效果图:


测试结果:

本文参考文章地址:
https://blog.csdn.net/deaidai/article/details/71834241

C++实现链式存储二叉树相关推荐

  1. c语言二叉树链式存储,二叉树链式存储基本操作(C语言)

    1.二叉链的定义 LinkBinTree.h文件 /** 二叉树结点结构 */ typedef struct _binnode { int data; struct _binnode * lchild ...

  2. 二叉树的链式存储结构

    文章目录 前言 正文 总结 前言 上一节讲了二叉树的顺序存储,通过学习你会发现,其实二叉树并不适合用数组存储,因为并不是每个二叉树都是完全二叉树,普通二叉树使用顺序表存储或多或多会存在空间浪费的现象. ...

  3. (数据结构)二叉树的链式存储结构

    二叉树的顺序存储的缺点 因为并不是每个二叉树都是完全二叉树,普通二叉树使用顺序表存储或多或少会存在空间浪费的现象 图 1 普通二叉树的转化 如上图 1,普通二叉树里只有二个元素,最好的存储方式当然是开 ...

  4. 数据结构与算法(6-2)二叉树的存储结构(顺序存储、链式存储)

    目录 一.二叉树的顺序存储 存储方式 总代码 二.二叉树的链式存储(二叉链表) 1.存储结构 2.创建二叉树 总代码 一.二叉树的顺序存储 存储方式 //树的顺序存储 typedef struct { ...

  5. 二叉树的链式存储结构--二叉链表

    1 二叉树的链式存储结构 //二叉链表的结点结构定义typedef int TElemType; typedef struct BiTNode {TElemType data;struct BiTNo ...

  6. C语言手写二叉树(链式存储结构)

    C语言手写二叉树(链式存储结构) 二叉树结构 二叉树基本运算 代码 图例(main函数执行过程如下:) 阶段I 阶段II 阶段III 阶段IV 阶段V 先序遍历输出过程 二叉树结构 二叉树可以用顺序存 ...

  7. 【Java数据结构】链式存储的二叉树

    链式存储的二叉树 二叉树数据结构 创建二叉树 二叉树的遍历 先序遍历 中序遍历 后序遍历 二叉树节点的查找 先序查找 中序查找 后序查找 删除二叉树的子树 二叉树示例完整代码 BinaryTree 类 ...

  8. java链式存储_Java实现链式存储的二叉树

    importjava.util.LinkedList;importjava.util.List;importjava.util.Queue;importjava.util.Stack;/***@aut ...

  9. c语言二叉树链式存储,C语言 二叉树的链式存储实例

    二叉树的链式存储 实现二叉树的基本操作:建立.遍历.计算深度.结点数.叶子数等. 输入C,先序创建二叉树,#表示空节点: 输入H:计算二叉树的高度: 输入L:计算二叉树的叶子个数: 输入N:计算二叉树 ...

最新文章

  1. python输出csv文件中文乱码-python读写csv时中文乱码问题解决办法
  2. python安装numpy-Python使用pip安装Numpy模块
  3. log4j 2.x 架构
  4. C#窗体应用程序崩溃解决方法总结
  5. 卸载 流程_一款适合于windows端的卸载神器 彻底清理残留软件
  6. 说说 JavaScript 计时器的工作原理
  7. 第十三届蓝桥杯青少年STEMA(2021.08-2021.03)C++
  8. git学习3--关联不同的网址的远程分支
  9. ODrive踩坑(四)AS5047P-SPI绝对值磁编码器,不需每次上电校准无刷电机,直接上电可用
  10. POJ 2455 Secret Milking Machine
  11. Unix/Linux的内存映射
  12. caffe 官方例程之R-CNN(物体检测)
  13. dpkg: 错误: 另外一个进程已经为 dpkg frontend lock 加锁
  14. leetcode每日一练(第一天)
  15. springboot跨域处理
  16. 惊爆:Alexa 全球排名网站即将关闭
  17. 深入学习理解java虚拟机--1.win10 下构建64位 openJDK8
  18. 使用Mybatis进行更新操作成功,数据库却没更新的原因
  19. scala的两种变量类型 var 和 val
  20. excel可以用python语言_用python打开excel的方法

热门文章

  1. IOS之提示Interface type cannot be statically allocated
  2. Android插件化开发基础之Java类加载器与双亲委派模型
  3. Android之Android studio如何解决Multiple dex files define Landroid/support/a(文件重复引用错误)
  4. if函数python_pythonif函数
  5. 他让全世界凶手睡不着觉,现实版福尔摩斯,退休了4次又被拽回来工作,无敌实在是太寂寞了~...
  6. 这就是你们有钱人炫富的新方式吗?
  7. 看了《隐秘的角落》才知道,掉头发有多可怕!10个掉头发最快的专业!快看看你中枪了没有!...
  8. 90后一代人还能通过攒钱改变现状吗?
  9. sql年月日24小时制_Power Query 抓取气象台24小时降水量数据
  10. 批量提取文件创建时间_不要眨眼!批量提取文件名,只需30秒