二叉树的建立、删除及三种遍历的C++实现
教材上的Tree类写法太累赘,不实用,将树节点直接写成结构体即可
要理解结点的含义以及根结点的重要意义
#include <stdio.h> #include <stdlib.h> //用CPP文件编写,否则编译出错,需要加struct且delete不识别 struct TreeNode { int val; TreeNode * left, * right; }; TreeNode * insertTree(TreeNode * root,int val){//insert new node,return root TreeNode * newNode; if (root == NULL) { newNode = new TreeNode; newNode -> val = val; newNode -> left = NULL; newNode -> right = NULL; return newNode; } if (val < root ->val) root ->left = insertTree(root ->left,val); else root ->right = insertTree(root ->right,val); return root; } void delTree(TreeNode * root){ if(root -> left != NULL) delTree(root -> left); if(root -> right != NULL) delTree(root ->right); delete root; return; } void FLRTraverse(TreeNode * root) {//先序遍历 printf("%d/n",root -> val); if(root -> left != NULL) FLRTraverse(root -> left); if(root -> right != NULL) FLRTraverse(root -> right); return; } void LFRTraverse(TreeNode * root) {//中序遍历 if(root -> left != NULL) LFRTraverse(root -> left); printf("%d/n",root -> val); if(root -> right != NULL) LFRTraverse(root -> right); return; } void LRFTraverse(TreeNode * root) {//后序遍历 if(root -> left != NULL) LRFTraverse(root -> left); if(root -> right != NULL) LRFTraverse(root -> right); printf("%d/n",root -> val); return; } void main(){ //始终记住根是对树而言最重要的结点 FILE * fin; TreeNode *root; int val; fin = fopen("data.txt","r"); root = NULL; while(fscanf(fin,"%d",&val) != EOF) root = insertTree(root,val); fclose(fin); printf("先序遍历:/n"); FLRTraverse(root); printf("/n"); printf("中序遍历:/n"); LFRTraverse(root); printf("/n"); printf("后序遍历:/n"); LRFTraverse(root); printf("/n"); delTree(root); return; }
您还没有登录,请您登录后再发表评论
二叉树的建立、先中后遍历以及层次遍历,交换左右子树,凹入打印二叉树,删除结点
大连理工大学数据结构上机 二叉树三种遍历,先序和中序建立二叉树,后序和中序建立二叉树,二叉搜索树查找,删除,插入
二叉树的建立查找遍历删除的程序的实现,同志们加油
二叉树的创建、插入、遍历、删除、打印等十几种操作,史上最全.代码可直接运行
本程序是数据结构课程设计作业,实现对二叉树的创建,遍历 找到相应结果,删除等操作。
二叉树的操作 建立 删除 中序,先序 后序遍历
1. 利用平衡二叉树实现一个动态查找表,实现动态查找表的三种...3并编程实现从键盘上输入一系列数据(整型),建立一棵平衡二叉树,任意插入或删除一个结点后仍然要求构成平衡二叉树,并按中序遍历输出这棵平衡二叉树。
题目是这样的:建立二叉树,层序、先序...源代码都在里面,.CPP .dsw等 遍历方法用了很多种不要的话可以删除。这是课程设计的程序 如果有问题或联系本人请到http://it.dengchao.org留言。很高兴能与大家交流技术!
关于二叉树的基本操作,此代码已经运行成功!
1.建立二叉树 2.树形输出 3.广义表形输出 4.判断是否为空树 5.求树的深度 6.插入孩子结点 7.删除孩子结点 8.取出根结点 9.取双亲结点 10.取左孩子结点 11.取右孩子结点 12.取左兄弟 13.取右兄弟 14.先序遍历 15.中序...
线索二叉树的一些基本功能 遍历 二叉树线索化 等等
//实现三种递归遍历的打印 Status NonPreOrder(BSTree T,Stack S); //实现树的非递归前序遍历 Status NonInOder(BSTree T,Stack S); //实现树的非递归中序遍历 Status NonPostOrder(BSTree T,Stack S); //实现树...
1.编写程序任意输入二叉树的结点个数和结点值,构造一棵二叉树,采用三种递归遍历算法(前序、中序、后序)对这棵二叉树进行遍历并计算出二叉树的高度。 2 .编写程序生成下面所示的二叉树,并采用中序遍历的非递归...
包括: 1、按层次序列建立二叉树 2、按先根序列建立二叉树 3、按先序和中序序列建立二叉树 4、按后序和中序建立二叉树 5、先根遍历(递归) 6、中根遍历(递归)" ...16、二叉树的删除(递归实现) 0、退出系统
详细的讲解了二叉树用C语音的建立过程。并实现了相应的遍历。删除功能。。
二叉树的遍历: 二叉树的查找: 二叉树的删除: 我们最初学习数据结构的时候,肯定是先从线性结构和链式结构讲起,回顾一下他们的特点。 线性结构以数组为例,它通过下标的方式访问元素,访问速度很快,但是当我们向...
c语实现了查找二叉树的建立,插入删除,遍历,前驱,后继等相关操作
数据结构中关于二叉树的遍历插入删除/ GGGG.cpp : Defines the entry point for the console application. #include "stdafx.h" #include<stdio.h> #include<stdlib.h> #define Max 100 typedef struct BT { ...
本文件为基于vs2010平台的使用C++语言的二叉树建立和操作。其中有二叉树的四种遍历方式,查找插入删除等基本操作。代码精心总结,有详细的注释,结构清晰,对初学算法的人有很大帮助。
一些简单的线索二叉树的应用,主要是线索二叉树的插入,删除等操作
相关推荐
二叉树的建立、先中后遍历以及层次遍历,交换左右子树,凹入打印二叉树,删除结点
大连理工大学数据结构上机 二叉树三种遍历,先序和中序建立二叉树,后序和中序建立二叉树,二叉搜索树查找,删除,插入
二叉树的建立查找遍历删除的程序的实现,同志们加油
二叉树的创建、插入、遍历、删除、打印等十几种操作,史上最全.代码可直接运行
本程序是数据结构课程设计作业,实现对二叉树的创建,遍历 找到相应结果,删除等操作。
二叉树的操作 建立 删除 中序,先序 后序遍历
1. 利用平衡二叉树实现一个动态查找表,实现动态查找表的三种...3并编程实现从键盘上输入一系列数据(整型),建立一棵平衡二叉树,任意插入或删除一个结点后仍然要求构成平衡二叉树,并按中序遍历输出这棵平衡二叉树。
题目是这样的:建立二叉树,层序、先序...源代码都在里面,.CPP .dsw等 遍历方法用了很多种不要的话可以删除。这是课程设计的程序 如果有问题或联系本人请到http://it.dengchao.org留言。很高兴能与大家交流技术!
关于二叉树的基本操作,此代码已经运行成功!
1.建立二叉树 2.树形输出 3.广义表形输出 4.判断是否为空树 5.求树的深度 6.插入孩子结点 7.删除孩子结点 8.取出根结点 9.取双亲结点 10.取左孩子结点 11.取右孩子结点 12.取左兄弟 13.取右兄弟 14.先序遍历 15.中序...
线索二叉树的一些基本功能 遍历 二叉树线索化 等等
//实现三种递归遍历的打印 Status NonPreOrder(BSTree T,Stack S); //实现树的非递归前序遍历 Status NonInOder(BSTree T,Stack S); //实现树的非递归中序遍历 Status NonPostOrder(BSTree T,Stack S); //实现树...
1.编写程序任意输入二叉树的结点个数和结点值,构造一棵二叉树,采用三种递归遍历算法(前序、中序、后序)对这棵二叉树进行遍历并计算出二叉树的高度。 2 .编写程序生成下面所示的二叉树,并采用中序遍历的非递归...
包括: 1、按层次序列建立二叉树 2、按先根序列建立二叉树 3、按先序和中序序列建立二叉树 4、按后序和中序建立二叉树 5、先根遍历(递归) 6、中根遍历(递归)" ...16、二叉树的删除(递归实现) 0、退出系统
详细的讲解了二叉树用C语音的建立过程。并实现了相应的遍历。删除功能。。
二叉树的遍历: 二叉树的查找: 二叉树的删除: 我们最初学习数据结构的时候,肯定是先从线性结构和链式结构讲起,回顾一下他们的特点。 线性结构以数组为例,它通过下标的方式访问元素,访问速度很快,但是当我们向...
c语实现了查找二叉树的建立,插入删除,遍历,前驱,后继等相关操作
数据结构中关于二叉树的遍历插入删除/ GGGG.cpp : Defines the entry point for the console application. #include "stdafx.h" #include<stdio.h> #include<stdlib.h> #define Max 100 typedef struct BT { ...
本文件为基于vs2010平台的使用C++语言的二叉树建立和操作。其中有二叉树的四种遍历方式,查找插入删除等基本操作。代码精心总结,有详细的注释,结构清晰,对初学算法的人有很大帮助。
一些简单的线索二叉树的应用,主要是线索二叉树的插入,删除等操作