随笔分类 - 数据结构
摘要:顺序查找 查找指定值 查找最小值和最大值 自组织数据 对于未排序的数据集来说,当被查找的数据位于数据集的起始位置时,查找是最快、最成功的。通过将成功找到的元素置于数据集的起始位置,可以保证在以后的操作中该元素能被更快地查找到。 二分查找 如果你要查找的数据是有序的,二分查找算法比顺序查找算法更高效。
阅读全文
摘要:1、基本排序算法 1.1、冒泡排序 它是最慢的排序算法之一。 1、不断比较相邻的两个元素,如果前一个比后一个大,则交换位置。 2、当比较完第一轮的时候最后一个元素应该是最大的一个。 3、按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以第二轮的时候最后一个元素不用比
阅读全文
摘要:图由边的集合及顶点的集合组成。边是有方向的是有序图(有向图),否则就是无序图(无向图)。图中的一系列顶点构成路径,路径中所有的顶点都由边连接。路径的长度用路径中第一个顶点到最后一个顶点之间边的数量表示。 用邻接表来表示边,即将与某一顶点的相邻的边表示为由该顶点的相邻顶点列表构成的数组,并以该顶点作为
阅读全文
摘要:1、二叉树和二叉查找树的基本概念 树是一种非线性的数据结构,以分层的方式存储数据。在二叉树上进行查找非常快,为二叉树添加或删除元素也非常快。 一棵树最上面的节点称为根节点,如果一个节点下面连接多个节点,那么该节点称为父节点,它下面的节点称为子节点。一个节点可以有 0 个、1 个或多个子节点,没有任何
阅读全文
摘要:集合(set)是一种包含不同元素的数据结构。集合中的元素称为成员。集合的两个最重要特性是:首先,集合中的成员是无序的;其次,集合中不允许相同成员存在。当你想要创建一个数据结构用来保存一些独一无二的元素时就可以用到集合。 基于数组的 Set 类的实现 add() 方法添加元素。使用 add() 方法将
阅读全文
摘要:散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用。散列使用的数据 结构叫做散列表。在散列表上插入、删除和取用数据都非常快。 下面的散列表是基于数组进行设计的,数组的长度是预先设定的,如有需要,可以随时增加。所有元素根据和该元素对应的键,保存在数组的特定位置。使用散列表存储数据时,通过一
阅读全文
摘要:字典是一种以键 - 值对形式存储数据的数据结构 通过数组实现字典 add() 方法接受两个参数:键和值 find() 方法以键作为参数,返回和其关联的值 remove() 方法从字典中删除键 - 值对 showAll() 方法显示字典中所有的键 - 值对 count() 方法显示字典中的元素个数 c
阅读全文
摘要:1、链表的基本介绍 数组不总是组织数据的最佳数据结构,在很多编程语言中,数组的长度是固定的,所以当数组已被数据填满时,再要加入新的元素就会非常困难。在数组中,添加和删除元素也很麻烦,因为需要将数组中的其他元素向前或向后平移。 链表是由一组节点组成的集合。每个节点都使用一个对象的引用指向它的后继。许多
阅读全文
摘要:队列是一种列表,不同的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按 顺序排列的数据,先进先出。 队列的两种主要操作是:向队列中插入新元素和删除队列中的元素。插入操作也叫做入 队,删除操作也叫做出队。入队操作在队尾插入新元素,出队操作删除队头的元素。 用数组实现的队列 enqueue()
阅读全文
摘要:1、栈的基本介绍 栈是一种高效的数据结构,因为数据只能在栈顶添加或删除,所以这样的操作很快,而且容易实现。 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构。由于栈具有后入先出的特点,所以任何不在栈顶
阅读全文
摘要:列表是一组有序的数据。每个列表中的数据项称为元素。在 JavaScript 中,列表中的元素可以是任意数据类型。列表中可以保存多少元素并没有事先限定并可以不断壮大,实际使用时元素的数量受到程序内存的限制。 (1)列表的抽象数据类型定义: listSize(属性) 列表的元素个数 pos(属性) 列表
阅读全文