首先,我们要知道什么是满二叉树。一个深度为k,节点个数为 2^k – 1 的二叉树为满二叉树。这个概念很好理解。 那么,我们要怎么判断一棵树是否为满二叉树呢? 思路:在层序遍历的过程中,找到第一个非满节点(n…
分类:满二叉树
二叉树的创建和递归与非递归遍历
二叉树的创建 //index要给引用!!! void _Create(Node *&pRoot,T *arr,T invalid,size_t sz,size_t &index) { if (arr[in…
搜索二叉树含迭代器
搜索二叉树含迭代器 vs2013下编写的项目工程见 我的 github: https://github.com/excelentone/DataStruct #include<iostream> #inclu…
二叉树的层序遍历 N!结尾0的个数
二叉树的层序遍历 void _LevelOrder(Node *pRoot) { Node *pCur = pRoot; queue<Node *> q; q.push(pCur); while (!q.em…
二叉树中叶子节点的个数第K层的节点个数
叶子节点的个数 size_t _GetLeefNode(Node *pRoot) { if (pRoot == NULL) return 0; if (NULL == pRoot->pLeft&&N…
计算二叉树中节点个数,叶节点个数,满节点个数的函数
下面这三个是我写的. static int node_count (const Tree tree) { int the_number_of_left_subtree = 0, the_number_of_right_s…
C++ 满二叉树先序序列数组获得后续序列
方法思想:除去当前序列的第一个元素e,将剩下的分成前后相等的两半,分别为当前元素e的左右子树。将e移到整个序列的末尾,再递归处理子树即可。 #include <bits/stdc++.h> #define M…
满二叉树、完全二叉树、最优二叉树(赫夫曼树)、二叉排序树、二叉判定树
1、满二叉树 定义:除最后一层的结点外,每一层的所有结点都有两个子结点。 另外一个定义:深度为k且有2^k-1个结点的二叉树。 满二叉树是一颗树深度为h,最大层数为k,且深度与最大层数相同,即k=h; 它的…
HHU暑期第二弹——数据结构初步(二叉搜索树+队列与优先队列+堆栈Stack+完全二叉树与满二叉树+哈希表)
第二弹数据结构初步的主要内容有以下几部分:二叉搜索树、队列与优先队列、堆栈Stack、完全二叉树与满二叉树、哈希表。 一、二叉搜索树 1、 二叉查找树(BinarySearch Tree,也叫二叉搜索树,或称二叉排序树B…
程序员面试金典--面试23之求出满二叉树a和b点的最近公共祖先的编号
题目描述 有一棵无穷大的满二叉树,其结点按根结点一层一层地从左往右依次编号,根结点编号为1。现在有两个结点a,b。请设计一个算法,求出a和b点的最近公共祖先的编号。 给定两个int a,b。为给定结点的编号。请返回a和b…
(二叉搜索树10.1.1)POJ 2309 BST(求以x为根的满二叉搜索树的最小节点编号和最大节点编号)
/* * POJ_2309.cpp * * Created on: 2013年11月6日 * Author: Administrator */ #include <iostream> #include <…
关于哈夫曼树的一些总结--(总是要和完全二叉树和满二叉树搞混了 = =)
哈夫曼树: 给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 哈夫曼树…