建立排序二叉树并中序遍历
来源:互联网 发布:手机usb共享电脑网络 编辑:程序博客网 时间:2024/04/29 01:41
分析:中序遍历也叫中根遍历,顾名思义是把根节点放在中间来遍历,其遍历顺序为左子节点–>根节点–>右子节点。
方法一:
#include<iostream>using namespace std;struct node //二叉树结点结构{ int data; node *left; //右子树结点指针 node *right; //左子树结点指针};class Btree{ node *root; //根结点的指针public: Btree() { root = NULL; } void CreateBtree(int); void Inorder() //中序遍历主过程 { Inorder(root); cout << endl; } void Inorder(node *); //中序遍历子过程};void Btree::CreateBtree(int x){ node *newnode = new node; newnode->data = x; newnode->left = NULL; newnode->right = NULL; if(NULL == root) { root = newnode; } else { node *back; node *current = root; while(current != NULL) //找到要插入newnode的节点指针 { back = current; if(current->data > x) { current=current->left; } else { current = current->right; } } if(back->data > x) { back->left = newnode; } else { back->right = newnode; } }}void Btree::Inorder(node *root) //中序遍历排序二叉树{ if(root) { Inorder(root->left); cout << root->data << " "; Inorder(root->right); }}int main(){ Btree A; int arr[]={7, 4, 1, 5, 12, 8, 13, 11}; //排序二叉树:左子结点<根节点<右子节点 cout << "建立排序二叉树:" << endl; for(int i = 0; i < 8; i++) { cout << arr[i] << " "; A.CreateBtree(arr[i]); } cout << endl << "中序遍历序列:" << endl; A.Inorder(); return 0;}
运行结果:
建立排序二叉树:7 4 1 5 12 8 13 11中序遍历序列:1 4 5 7 8 11 12 13Press any key to continue
阅读全文
0 0
- 建立排序二叉树并中序遍历
- 建立中序线索二叉树并遍历
- 树的遍历 有后序遍历和中序遍历建立二叉树,并输出层次遍历
- 排序二叉树的建立与中序遍历
- 构造排序二叉树并输出前序遍历、中序遍历、后序遍历
- 由前序和中序遍历建立二叉树并后序遍历输出二叉树
- uva122(二叉树建立,中序遍历)
- 05_ 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历
- 建立二叉树,并层次遍历输出
- 排序二叉树的中序遍历
- 由树的前序遍历,中序遍历建立一颗二叉树,并以后续遍历的方式输出其元素
- 建立二叉树,先、中、后序遍历
- 二叉树建立及中序遍历C++语言实现
- 二叉树的建立和中序遍历
- 线索二叉树的建立和中序遍历
- 数据结构之二叉树的建立及中序遍历
- 已知二叉树先序遍历,中序遍历创建二叉树并输出后序遍历
- 二叉树的建立、遍历,以及给定二叉树前序遍历和中序遍历重建二叉树问题。
- iOS尝试用测试驱动的方法开发一个列表模块【四】
- [模板] 二叉堆
- [笔记分享] [Hardware] PM8058 User Guide study report
- 机房收费系统(结账)
- Maven配置JDK版本
- 建立排序二叉树并中序遍历
- 【Docker】将RancherOS安装到硬盘
- RMAN基本命令集
- 竖式问题
- Unity3D shader(15)——材质(玻璃)
- HDU2896——病毒侵袭(AC自动机)
- 401. Binary Watch
- R语言 : 层次聚类分析
- 变分自编码器VAE(上)