
数据结构
文章平均质量分 65
小键233
生活才是我的职业,而程序员,那只是我的副业
==
展开
-
数据结构:线性表
声明:本文为学习数据结构与算法分析(第三版) Clifford A.Shaffer 著的学习笔记,代码有参考该书的示例代码。线性表应该能够在任意位置插入和删除。读取任意位置的值,并且允许做出更改。 对于线性表的实现有两种方法,数组或者链表。 首先定义线性表的ADTtemplate<typename E> class List { List(const List& list) {}原创 2016-02-08 21:28:37 · 637 阅读 · 0 评论 -
数据结构:散列(hashing)
声明:本文为学习数据结构与算法分析(第三版) Clifford A.Shaffer 著的学习笔记,代码有参考该书的示例代码。 散列方法把关键码值映射到数组中的位置来访问记录这个过程称为散列(hashing) 把关键码值映射到位置的函数称为散列函数(hashing function),通常用 h 表示。 存放记录的数组称为散列表(hash table),用 HT 表示。 散列表中的一个位置称为一原创 2016-02-26 13:01:32 · 7408 阅读 · 0 评论 -
数据结构:自组织线性表
声明:本文为学习数据结构与算法分析(第三版) Clifford A.Shaffer 著的学习笔记,代码有参考该书的示例代码。 存在一种简单的方式对记录按照访问频率进行排序。 自组织线性表根据实际记录访问模式在线性表中修改记录的顺序。 有三种启发式规则管理自组织线性表。计数方法 (count) 为每一条记录保存一个访问计数,而且一直按照这个顺序维护记录。 它类似于缓冲池中的最不经常使用方法(L原创 2016-02-23 20:33:04 · 3485 阅读 · 0 评论 -
数据结构:2-3树
声明:本文为学习 数据结构与算法分析(第三版) Clifford A.Shaffer 著 的学习笔记,代码有参考该书的示例代码。2-3树2-3 树的形状定义如下: 一个结点包含一个或两个关键码。 每个内部结点有两个子结点(如果它包含一个关键码)或者三个子结点(如果它包含两个关键码),它因此得名 2-3 树。 所有叶结点都在树结构的同一层,因此树的高度总是平衡的。 2-3 树保持了类似于BST 的检索原创 2016-03-08 19:09:36 · 952 阅读 · 1 评论 -
数据结构: 树
声明:本文为学习数据结构与算法分析(第三版) Clifford A.Shaffer 著的学习笔记,代码有参考该书的示例代码。定义与术语这没什么好说的,照搬书上的吧。 一棵树 T 是由一个或一个以上结点组成的有限集,其中有一个特定的结点 R 称为 T 的根结点。如果集合 (T -{R}) 非空,那么集合中的这些结点被划分为 n 个不相交的子集 T0, T1, ……, Tn, 其中每个子集都是树,并且原创 2016-02-23 10:51:56 · 811 阅读 · 0 评论 -
数据结构:二叉树
声明:本文为学习数据结构与算法分析(第三版) Clifford A.Shaffer 著的学习笔记,代码有参考该书的示例代码。 二叉树的定义和特性会比较多一点,而且感觉也有一点难,所以本篇内容可能会稍微冗长。但是,基本是参考书本内容。强烈推荐买实体书学习。定义及主要特性这里并不完全列举和说明二叉树的概念和内容,仅记录一些。 根结点、左子树、右子树 子结点、父结点 路径 (path) :结点 ni 是原创 2016-02-17 23:36:54 · 1056 阅读 · 2 评论 -
数据结构:字典
声明:本文为学习数据结构与算法分析(第三版) Clifford A.Shaffer 著的学习笔记,代码有参考该书的示例代码。字典碎碎语:其实我一直对这个数据结构不是很了解。 字典 (Dictionary) 作为数据库的一个简单接口,提供在数据库中存储、查询和删除记录的可能。 字典中有定义关键码 (search key)的概念。而关键码则必须是可比的 字典的ADT如下:template<type原创 2016-02-11 13:49:53 · 3382 阅读 · 0 评论 -
数据结构: 队列
声明:本文为学习数据结构与算法分析(第三版) Clifford A.Shaffer 著的学习笔记,代码有参考该书的示例代码。 队列队列是一种受限制的线性表。 队列元素只能从队尾插入(称为入队 ,enqueue),只能从队首删除(称为出队,dequeue)。由于队列的特性,队列被称为“FIFO”线性表(先进先出) 队列的实现可以有两种方式,即顺序队列和链式队列。 队列的ADT如下:templat原创 2016-02-10 09:35:05 · 402 阅读 · 0 评论 -
数据结构: 栈
声明:本文为学习数据结构与算法分析(第三版) Clifford A.Shaffer 著的学习笔记,代码有参考该书的示例代码。 栈,stack,是“FILO”线性表,习惯上有如下称法: push: 入栈 pop: 弹出 top: 访问栈顶元素实现方式有顺序栈和链式栈ADTtemplate<typename E> class Stack { Stack(const Stack& ) {}原创 2016-02-09 12:55:02 · 411 阅读 · 0 评论 -
数据结构:索引之线性索引
声明:本文为学习 数据结构与算法分析(第三版) Clifford A.Shaffer 著 的学习笔记,代码有参考该书的示例代码。索引索引(indexing)是把一个关键码与它对应的数据记录的位置相关联的过程。主码(primary key)是数据库中的每一条记录唯一的标识。 辅码(secondary key)是数据库中多条记录具有的相同的关键码值。索引技术有线性索引、ISAM索引和基于树的索引。原创 2016-02-28 11:00:55 · 1455 阅读 · 0 评论