平衡二叉树又称为AVL树,它或者是一颗空树,或者是具有下列性质的二叉树:
(1)它的左子树和右子树都是平衡二叉树。
(2)左子树和右子树的深度之差的绝对值不超过1。
平衡二叉树中有一个重要的概念,平衡因子BF(Balance Factor)定义为该结点的左子树深度减去它的右子树的深度,根据平衡二叉树的性质可知,平衡因子只可能是-1、0和1。
A...
分类:
其他好文 时间:
2015-01-12 09:25:49
阅读次数:
257
基数排序是一种借助“多关键字排序”的思想来实现“单关键字排序”的内部排序算法。实现多关键字排序通常有两种作法: 最低位优先法(LSD) 先对K[0]{基数的最低位}进行排序,并按 K(0) 的不同值将记录序列分成若干子序列之后,分别对 K[1] 进行排序,..., K[d-1]依次类推,直至最后对最次位关键字排序完成为止。 最高位优先法(MSD) 先对 K[d-1]{基数的最高位...
分类:
编程语言 时间:
2015-01-11 10:59:26
阅读次数:
305
一、栈
1.栈(stack):是限定仅在表尾进行插入和删除操作的线性表。其中,允许插入和删除的一端被称为栈顶(top),另一端被称为栈底(bottom),不含任何数据元素的栈被称为空栈。栈又被称为后进先出(Last
In First Out)的线性表,简称LIFO结构。
栈的插入操作为进栈,栈的删除操作为出栈。
2.栈的抽象数据类型
ADT 栈(stack)
Data...
分类:
其他好文 时间:
2015-01-08 18:13:02
阅读次数:
228
poj 2785 4 Values whose Sum is 0 哈希入门题...
分类:
其他好文 时间:
2014-12-26 14:40:32
阅读次数:
165
本文分别使用栈和队列实现了迷宫搜索算法, 采用了不同的存储方式实现深度搜索和广度搜索,并深入解析了标记策略和搜索策略,文中最后提供了C++实现代码和结果演示。...
分类:
编程语言 时间:
2014-12-21 20:41:32
阅读次数:
344
基于我的另一篇文章《算法与数据结构基础4:C++二叉树实现及遍历方法大全》 ,二叉树的结构用的这篇文章里的。
二查找叉树的删除可以细分为三种情况:
1 被删除的是叶子节点,直接删除;
2 被删除只有一个子节点,指针下移;
3 有两个子节点,为了不破坏树的结构,需要找出一个节点来替换当前节点。
根据二叉树的特点,当前节点大于所有左子树,小于所有右子树,
可以用左子树中最大...
分类:
编程语言 时间:
2014-12-11 10:23:59
阅读次数:
243
主要内容:链表头插法和尾差法
#include
//typedef int data;
typedef struct node
{
char data;
struct node* next;
}linklist;
/* method 1 insert node as first element */
linklist* CreateList1()
{
char ch;
linkl...
分类:
编程语言 时间:
2014-12-10 00:33:45
阅读次数:
224
1、按照数据元素之间存在的逻辑关系可分4中种逻辑关系:
“一对一”:线性结构
“一对多”:树形结构
“多对多”:图状或网状结构
“同属一个集合,无其它关系”:纯集合结构
2、按在计算机中存储分类:
顺序存储:逻辑相邻且物理位置也相邻
链状存储:逻辑相邻,物理位置无要求
索引存储:存储数据元素的同时,建立索引表,索引表中一般包括关键字和地址等信息(关键字唯一标识一个数据元素)...
分类:
编程语言 时间:
2014-12-08 23:03:25
阅读次数:
270