
数据结构
文章平均质量分 73
first_wolf
linux
展开
-
二叉树的相关概念
一 定义和性质:(1)二叉树定义:每个节点至多只有两颗子树,并且二叉树的子树有左右之分,其次序不能随意颠倒。(2)二叉树的性质:(3)完全二叉树与满二叉树完全二叉树的定义:若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就原创 2013-03-09 16:04:52 · 771 阅读 · 0 评论 -
二叉树、树和森林的遍历和转换
一 遍历(1)二叉树的遍历:遍历方式:先序、中序、后序和层次(熟记:三个递归算法+三个非递归算法+层次遍历算法)时间复杂度:遍历二叉树的算法中的基本操作都是访问节点,且不论按哪一种次序进行遍历,对含有n个结点的二叉树,其时间复杂度为O(n)。空间复杂度:为遍历过程中栈的最大容量,即树的深度,最坏情况下为n,则空间复杂度为O(n)。(2)树的遍历:树有两种次序原创 2013-03-09 16:45:14 · 2653 阅读 · 0 评论 -
键树和字典树
一键树(数字查找树):(1)特点:*键树是一棵度>=2的树,树中的每个结点中只含有组成组成关键字的符号,而不是包含一个或几个关键字,叶子结点包括指向记录的指针。(2)存储结构:*孩子兄弟链表*多重链表。二 Trie树(字典树):键树用多重链表的表示便是Trie树。三 总结:*查找都是从根节点开始,走了一条从根到叶子(或非终端结点)的路径,其查找时间依原创 2013-03-11 18:54:59 · 1270 阅读 · 0 评论 -
B-树和B+树
一 B树概述:*B树是为磁盘或者其他直接存取辅助存储设备而设计的一种平衡多路查找树,在降低磁盘IO操作次数方面做的比较好(应用于文件系统和数据块系统)。*在B树中一个结点的大小通常相当于一个完整的磁盘页,因此一个B树结点可以拥有的子女数就由磁盘页的大小所决定。*在B+树中,所有附属数据都保存在叶结点中,只将关键字和子女指针保存于内结点里,因而最大化了分支因子。(1)B树定义原创 2013-03-11 18:54:32 · 1196 阅读 · 0 评论 -
二叉查找树综述
1)二叉查找树: 基本操作的时间与树的高度(h)成正比。(O(h)) 基本操作:查找、最大最小关键元素、前驱和后继、插入和删除。 可以中序遍历可以顺序输出树中所有关键字。(2)红黑树 典型用途:实现关联数组。 红黑树是一种自平衡二叉查找树,是许多“平衡的”查找树中的一种,原创 2013-02-19 11:08:05 · 419 阅读 · 0 评论 -
红黑树
一 红黑树概述:(1)所谓RB-tree,不仅是一个二叉搜索树,而且必须满足以下性质:1. 每个节点不是黑色就是红色。2. 根节点是黑色。3. 如果节点是红色,那么其子节点必须是黑色。4. 任一节点至NULL(树尾端)的任何路径,所含有的黑节点数必须相等。根据性质4:新增节点必须是红色;根据性质3:新增节点的父节点必须为黑。注意:当新节点根据二叉搜索树的规原创 2013-03-11 18:54:07 · 662 阅读 · 0 评论 -
图的基本概念
(1)基本概念: 1. 顶点(Vertex),边(Edge),弧(Arc),有向图(Digraph),无向图(Undigraph)。 对于有向图,弧的数目的范围是:0到n(n-1)。有n(n-1)条弧的有向图称为有向完全图。 对于无向图,边的数目的范围是:0到n(n-1)/2。有n(n-1)/2条边的无向图称为完全图。原创 2013-02-19 11:11:45 · 619 阅读 · 0 评论 -
哈希表
待续...原创 2013-03-11 18:55:24 · 673 阅读 · 0 评论 -
静态查找
一 静态查找:(一)顺序查找(1)过程:从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功;反之,直到第一个记录,其关键字和给定值比较都不相等,则表明表中没有要查找的记录,查找不成功。(2)性能分析:在等概率(每个记录的查找概率相等)情况下:查找成功的平均查找长度:1/2(n+1)。查找失败的平均查找长度:(n原创 2013-03-11 18:52:32 · 899 阅读 · 0 评论 -
循环队列
(1)求队列的长度:(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE(2)队列满:(Q.rear+1)%MAXQSIZE==Q.front(3)队列空:Q.rear=Q.front原创 2013-02-26 19:17:26 · 582 阅读 · 0 评论 -
树的存储结构
一 树的存储结构这里介绍三种存储结构,注意各种结构的优缺点。(1)双亲表示法:(2)孩子表示法:1 采用多重链表:即每个节点有多个指针域,其中每个指针指向一棵子树的根节点,此时链表中的结点可有如下两种结构:2 把每个结点的孩子结点排列起来,看成是一个线性表,且以单链表作存储结构,则n个节点有n个孩子链表,而n个头指针又组成一个线性表,为了便于查原创 2013-03-09 16:26:52 · 989 阅读 · 0 评论