学习JavaScript数据结构与算

第1章 JavaScript简介第2章 数组第3章 栈

栈是一种遵从后进先出(LIFO)原则的有序集合。

方法

push(element(s)):添加一个(或几个)新元素到栈顶。

pop():移除栈顶的元素,同时返回被移除的元素。

peek():返回栈顶的元素,不对栈做任何修改(这个方法不会移除栈顶的元素,仅仅返回它)。

isEmpty():如果栈里没有任何元素就返回true,否则返回false。

clear():移除栈里的所有元素。

size():返回栈里的元素个数。这个方法和数组的length属性很类似。

第4章 队列

队列是遵循FIFO(FirstInFirstOut,先进先出,也称为先来先服务)原则的一组有序的项。

方法

enqueue(element(s)):向队列尾部添加一个(或多个)新的项。

dequeue():移除队列的第一(即排在队列最前面的)项,并返回被移除的元素。

front():返回队列中第一个元素——最先被添加,也将是最先被移除的元素。队列不做任何变动(不移除元素,只返回元素信息——与Stack类的peek方法非常类似)。

isEmpty():如果队列中不包含任何元素,返回true,否则返回false。

size():返回队列包含的元素个数,与数组的length属性类似。

第5章 链表

链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。

方法append(element):向列表尾部添加一个新的项。

insert(position,element):向列表的特定位置插入一个新的项。

remove(element):从列表中移除一项。

indexOf(element):返回元素在列表中的索引。如果列表中没有该元素则返回-1。

removeAt(position):从列表的特定位置移除一项。

isEmpty():如果链表中不包含任何元素,返回true,如果链表长度大于0则返回false。

size():返回链表包含的元素个数。与数组的length属性类似。

toString():由于列表项使用了Node类,就需要重写继承自JavaScript对象默认的toString方法,让其只输出元素的值。

第6章 集合

集合是由一组无序且唯一(即不能重复)的项组成的。这个数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中。

方法add(value):向集合添加一个新的项。

remove(value):从集合移除一个值。

has(value):如果值在集合中,返回true,否则返回false。

clear():移除集合中的所有项。

size():返回集合所包含元素的数量。与数组的length属性类似。

values():返回一个包含集合中所有值的数组。

第7章 字典和散列表字典

字典和集合很相似,集合以[值,值]的形式存储元素,字典则是以[键,值]的形式来存储元素。字典也称作映射。

方法set(key,value):向字典中添加新元素。

remove(key):通过使用键值来从字典中移除键值对应的数据值。

has(key):如果某个键值存在于这个字典中,则返回true,反之则返回false。

get(key):通过键值查找特定的数值并返回。

clear():将这个字典中的所有元素全部删除。

size():返回字典所包含元素的数量。与数组的length属性类似。

keys():将字典所包含的所有键名以数组形式返回。

values():将字典所包含的所有数值以数组形式返回。

散列表

HashTable类,也叫HashMap类,是Dictionary类的一种散列表实现方式。散列算法的作用是尽可能快地在数据结构中找到一个值。

解决冲突

分离链接

线性探查

第8章 树

树是一种分层数据的抽象模型。(家谱)

方法insert(key):向树中插入一个新的键。

search(key):在树中查找一个键,如果节点存在,则返回true;如果不存在,则返回false。

inOrderTraverse:通过中序遍历方式遍历所有节点。

preOrderTraverse:通过先序遍历方式遍历所有节点。

postOrderTraverse:通过后序遍历方式遍历所有节点。

min:返回树中最小的值/键。

max:返回树中最大的值/键。

remove(key):从树中移除某个键。

树的遍历

中序

先序

后序

搜索树中的值

最小值

最大值

搜索特定的值

第9章 图

非线性数据结构(Vertex,Edge)

一个图G=(V,E)由以下元素组成。

V:一组顶点

E:一组边,连接V中的顶点

图的表示

邻接矩阵

邻接表

关联矩阵

图的遍历

深度优先搜索

通过将顶点存入栈中(在第3章中学习过),顶点是沿着路径被探索的,存在新的相邻顶点就去访问

广度优先搜索

队列

通过将顶点存入队列中(在第4章中学习过),最先入队列的顶点先被探索

第10章 排序和搜索算法

排序算法

冒泡排序

选择排序

插入排序

归并排序

快速排序

搜索算法

顺序搜索

二分搜索

第11章 算法补充知识附录A 时间复杂度速查表will

赞赏

长按







































小儿白癜风如何治疗
白癜风专科



转载请注明:http://www.92nongye.com/xxmb/204621376.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了