数据结构与算法js描述
介绍js的数据结构和算法
天青如水
这个作者很懒,什么都没留下…
展开
-
第二章数组
1.创建一个记录学生成绩的对象,提供一个添加成绩的方法,以及一个显示学生平均成绩的方法。function Student(grade){ this.grade=grade; this.add=add; this.average=average;}function add(grade){ this.grade.push(grade);}function average...原创 2018-07-01 17:17:09 · 197 阅读 · 0 评论 -
第八章散列
散列的含义散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。对不同的关键字可能得到同一散列地址,即k1≠k2,而f(k1)=f(k2),这种现象称为碰撞(英语:Collision)。具有相同函数值的关键字对该散列函数来...原创 2018-07-04 14:20:05 · 264 阅读 · 0 评论 -
第七章字典
字典的含义字典是一种以键 - 值对形式存储数据的数据结构,就像电话号码簿里的名字和电话号码一 样。要找一个电话时,先找名字,名字找到了,紧挨着它的电话号码也就找到了。字典是一种跟set集合很相似的数据结构,都可以用来存储无序不重复的数据。不同的地方是集合以[值,值]的形式存储,而字典则是以[键,值]或者叫作{key: value}的形式。JS代码实现function Dictionary(){...原创 2018-07-03 20:26:03 · 169 阅读 · 0 评论 -
第六章链表
链表简介1、链表是物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,有一系列结点(地址)组成,结点可动态的生成。2、结点包括两个部分:一、存储数据元素的数据域(内存空间),二、存储指向下一个结点地址的指针域。3、相对于线性表顺序结构,操作复杂。双向链表双向链表(双链表)是链表的一种。和单链表一样,双链表也是由节点组成,它的每个数据结点中都有两个指针,分别指向直接...原创 2018-07-03 18:00:42 · 168 阅读 · 0 评论 -
第五章队列
队列介绍队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。Queue 类定义和一些测试代码function Queue(){ this.dataStore=[]; this.enqueue=enqueue; this.dequeu...原创 2018-07-03 13:58:57 · 191 阅读 · 0 评论 -
第四章栈(3)
3.现实生活中栈的一个例子是佩兹糖果盒。想象一下你有一盒佩兹糖果,里面塞满了红色、黄色和白色的糖果,但是你不喜欢黄色的糖果。使用栈(有可能用到多个栈)写一段程序,在不改变盒内其他糖果叠放顺序的基础上,将黄色糖果移出。let candyBox=new Stack();candyBox.push('red');candyBox.push('yellow');candyBox.push('red'...原创 2018-07-03 01:06:47 · 147 阅读 · 0 评论 -
第四章栈(2)
2. 一个算术表达式的后缀表达式形式如下:op1 op2 operator使用两个栈,一个用来存储操作数,另外一个用来存储操作符,设计并实现一个JavaScript函数,该函数可以将中缀表达式转换为后缀表达式,然后利用栈对该表达式求值。 考虑优先级: 1.先乘除 2.后加减 3.有括号先算括号里 基本思路:为了完成算术表达式的计算,用到...原创 2018-07-03 00:31:53 · 295 阅读 · 0 评论 -
第四章栈(1)
一、Stack()类function Stack(){ this.dataStore=[]; this.top=0; this.push=push; this.pop=pop; this.peek=peek; this.clear=clear; this.length=length; this.isEmpty=isEmpty;}function push(element){...原创 2018-07-03 00:30:12 · 167 阅读 · 0 评论 -
第三章列表
1.列表的抽象数据类型定义listSize(属性) 列表的元素个数 pos (属性) 列表的当前位置 length (属性) 返回列表中元素的个数 clear (方法) 清空列表中的所有元素find (方法) 在列表中查找某一元素toString (方法) 返回列表的字符串形式 getElement (方法) 返回当前位置的元素 inser...原创 2018-07-01 20:33:04 · 594 阅读 · 0 评论 -
第一章JS复习
//js forEach every same reduce不产生新数组function square(num){ console.log(num,num*num);}let nums=[1,2,3,4,5,6,7,8,9];nums.forEach(square);console.log('nums:',nums);*/function isEven(num){ r...原创 2018-07-01 17:21:43 · 132 阅读 · 0 评论 -
第九章集合
集合的定义集合(set)是一种包含不同元素的数据结构。集合中的元素称为成员。集合的两个最重要特性是:首先,集合中的成员是无序的;其次,集合中不允许相同成员存在。不包含任何成员的集合称为空集,全集则是包含一切可能成员的集合。如果两个集合的成员完全相同,则称两个集合相等。如果一个集合中所有的成员都属于另外一个集合,则前一集合称为后一集合的子集。对集合的操作并集:对于给定的两个集合,返回一个包含两个集合...原创 2018-07-04 14:34:49 · 229 阅读 · 0 评论