二叉树
文章平均质量分 69
小心眼儿猫
这个作者很懒,什么都没留下…
展开
-
二叉树及其基本操作(一)(C语言递归实现前中后层序遍历)
树的概念: 由N(N>=0)个节点构成的集合,对于N>1的树,有: 1、有一个特殊的节点,称为根节点,根节点没有前驱节点 2、除根节点外其余节点被分成M(M>0)个互不相交的集合T1,T2……Tm,其中每一个集合Ti(1<=i<=m) 是一棵结构与树类似的子树,每棵子树的根节点有且只有一个前驱,可以有0个或多个后继因此,树是递归定义的。...原创 2018-04-30 12:10:43 · 1656 阅读 · 0 评论 -
二叉树及其基本操作(二)(C语言)
前面我们知道了二叉树的相关概念和性质,也了解了二叉树的相关遍历方法,接下来我们来实现一下其他的有关二叉树的相关基本操作。二叉树及其基本操作(一)(C语言递归实现前中后层序遍历)//求二叉树节点个数int TreeSize1(TreeNode *root){ if(root == NULL) { //空树 return 0; } ...原创 2018-04-30 14:31:55 · 218 阅读 · 0 评论 -
二叉树基本操作(三)(非递归实现前中后序遍历)
非递归实现前序遍历思路:非递归的前序遍历就比较简单,借助一个栈,将根节点入栈,然后通过循环,取栈顶元素,出栈就可访问当前栈顶元素(也就是当前树的根节点(前序遍历的顺序是VLR)),有先序遍历的顺序规则,在将其右子树入栈,在将其左子树入栈,只需要注意一点,左右子树的入栈顺序一定是先入栈右子树在入栈左子树。(因为我们先序遍历是访问了根节点之后就访问左子树在访问右子树,而栈的特点是后进先出,因此我们要想...原创 2018-05-06 02:06:16 · 548 阅读 · 0 评论 -
数据结构·堆
堆:堆的表现形式其实是一棵完全二叉树,只不过,该完全二叉树中的元素有一些其他的考究。 1、首先堆分为大堆和小堆 2、大堆(小堆):任一节点的关键码大于(小于)等于他的左右孩子的关键码,位于堆顶节点的关键码永远是这棵二叉树中最大(最小)的一个值,从根节点到每个节点的路径上数组元素组成的序列都是递减(递增)的 1、堆存储在下标为0开始的数组中,因此在堆中给定下标为i的点时:...原创 2018-05-12 17:08:38 · 156 阅读 · 0 评论 -
二叉搜索树的插入、查找、删除的递归与非递归实现
二叉搜索树: 1、要么为一个空树 2、要么不是一个空树 2.1、如果有左子树,对于该树中的每一个节点来说,该节点的左子树上的所有节点都要比该节点小 2.2、如果有右子树,对于该树中的每一个节点来说,该节点的右子树上的所有节点都要比该节点大下面我们采用递归方法以及非递归方法来实现一下对于二叉搜索树的插入、查找以及删除操作。 1、基本操作:这里的基本操作思路简单,且在...原创 2018-05-16 00:09:29 · 1547 阅读 · 0 评论