数据结构
二叉树
这个作者很懒,什么都没留下…
展开
-
二叉树的前序、中序、后序的递归与非递归遍历算法实现
看代码一目了然。 C++代码:#include <iostream>#include <stack>#include <queue>using namespace std;//二叉树节点typedef struct BitNode{ char data; BitNode *lchild; BitNode *rchild;}BitNode, *BiTree;//按先原创 2016-07-12 12:31:34 · 8166 阅读 · 3 评论 -
几种常见的排序算法实现
1. 插入排序//插入排序#include <iostream>using namespace std;//每次遍历将第i个数插入到前i-1个数中(前i-1个数已排好序)void insertSort(int a[], int n){ for (int i=1;i<n;++i) { int tmp = a[i]; int j;原创 2016-07-12 20:55:50 · 452 阅读 · 0 评论 -
自定义类如何使用multiset进行排序
关键点:自定义类需要重载”<”运算符,并且 重载的函数”operator<”参数(如果传的是引用)和函数的类型都要为const。如果参数是非const对象的引用,则会报如下错误:二进制“<”: 没有找到接受“const Interval”类型的右操作数的运算符(或没有可接受的转换)(如果参数非引用,则不会报此错误);如果函数非const,则会报如下错误:二进制“<”: 没有找到接受“const In原创 2016-07-15 10:03:46 · 2941 阅读 · 0 评论 -
把二叉树打印成多行
题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印到一行。 分析:为了把二叉树的每一行单独打印到一行里,我们需要两个变量:一个变量表示在当前层中还没有打印的结点数,另一个变量表示下一层结点的数目。struct BinaryTreeNode{ int value; struct BinaryTreeNode *left; struct BinaryTreeNode原创 2016-09-17 16:20:24 · 562 阅读 · 0 评论 -
m阶B+树与m阶B树的主要差异在于:
在B+树中,具有n个关键字的结点只含有n棵子树,即每个关键字对应一棵子树;而在B树中,具有n个关键字的结点含有(n+1)棵子树。在B+树中,每个结点(非根结点)关键字个数n的范围是[m/2向上取整,m](根结点:1<=n<=m),在B树中,每个结点(非根结点)关键字个数n的范围是[m/2向上取整-1,m-1](根结点:1<=n<=m-1)。在B+树中,叶结点包含信息,所有非叶结点仅起到索引作用,原创 2016-08-04 11:45:18 · 4134 阅读 · 0 评论