常见数据结构之JavaScript实现

  随着前端技术的不断发展,投入到前端开发的人数也越来越多,招聘的前端职位也越来越火,大有前几年iOS开发那阵热潮。早两年,前端找工作很少问到关于数据结构和算法的,一般都围绕前端的基本知识和项目经历来问,但是随着这几年前端人数的激增,越来越多的用人单位在招聘过程中开始考察前端求职者的数据结构和算法知识功底了。笔者在去年求职的过程当中就曾多次碰到要求实现各类排序算法和二叉树等数据结构的面试题。本文简要介绍常见的数据结构在JavaScript中的实现。(基本算法已经由师兄在他的博客中写过了,可以移步这里。如果你期望看到面试中常见的前端知识点的题目,可以移步这里。)

  1、数组


  数组是JavaScript数据结构实现最基本的知识,由于我之前总结过一篇关于数组的基本知识,因此不再赘述,大家可以参考这里《javascript常用数组算法总结》。

  2、栈


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

  方法描述:push-添加一个或几个元素到栈顶;pop-移除站定的元素;peek-返回栈顶元素,从栈里不删除该元素;isEmpty-判断栈是否为空;clear-清除栈;size-栈的大小;print-打印栈。

  实现:

  

 function Stack () {
var items = []; //用于存放栈内元素 this.push = function (ele) {
items.push(ele);
}; this.pop = function () {
return items.pop();
}; this.peek = function () {
return items[items.length-1];
}; this.isEmpty = function () {
return items.length === 0;
}; this.size = function () {
return items.length;
}; this.clear = function () {
items = [];
}; this.print = function () {
console.log(items.toString());
};
}

  3、队列


  定义:队列是遵循先进先出(FIFO)原则的一组有序的集合。

方法描述:enqueue-向队尾部添加一个或多个元素;dequeue-移除队列的第一个元素并返回;first-返回队列第一个元素;isEmpty-判断队列是否为空;size-队列的大小;print-打印队列。

  实现:

function Queue() {
var items = []; //用于存放队列元素 this.enqueue= function (ele) {
items.push(ele);
}; this.dequeue= function () {
return items.shift();
}; this.first= function () {
return items[0];
}; this.isEmpty = function () {
return items.length === 0;
}; this.size = function () {
return items.length;
}; this.clear = function () {
items = [];
}; this.print = function () {
console.log(items.toString());
};
}

=================

TODO:

1.链表

2.集合

3.字典

4.树

5.图

常见数据结构之JavaScript实现的更多相关文章

  1. 8种常见数据结构及其Javascript实现

    摘要: 面试常问的知识点啊... 原文:常见数据结构和Javascript实现总结 作者:MudOnTire Fundebug经授权转载,版权归原作者所有. 做前端的同学不少都是自学成才或者半路出家, ...

  2. 前端学习总结(一)——常见数据结构的javascript实现

    1.列表类 // 列表类 function List() { this.listSize = 0; // 列表的元素个数 this.pos = 0; // 列表的当前位置 this.dataStore ...

  3. [py]软件编程知识骨架+py常见数据结构

    认识算法的重要性 - 遇到问题? 学完语言,接到需求,没思路? 1.学会了语言,能读懂别人的代码, 但是自己没解决问题的能力,不能够把实际问题转换为代码,自己写出来.(这是只是学会一门语言的后果),不 ...

  4. 转 Python常见数据结构整理

    http://www.cnblogs.com/jeffwongishandsome/archive/2012/08/05/2623660.html Python常见数据结构整理 Python中常见的数 ...

  5. unity_数据结构(常见数据结构及适用场景)

    常见的数据结构: 1.Array: 最简单的数据结构 特点:数组存储在连续的内存上.数组的内容都是相同类型.数组可以直接通过下标访问.优点:由于是在连续内存上存储的,所以它的索引速度非常快,访问一个元 ...

  6. 常见数据结构的 Python 实现(建议收藏)

    数据结构作为计算机基础的必修内容,也是很多大型互联网企业面试的必考题.可想而知,它在计算机领域的重要性. 然而很多计算机专业的同学,都仅仅是了解数据结构的相关理论,却无法用代码实现各种数据结构. 今日 ...

  7. 数据结构和算法(Golang实现)(11)常见数据结构-前言

    常见数据结构及算法 数据结构主要用来组织数据,也作为数据的容器,载体. 各种各样的算法,都需要使用一定的数据结构来组织数据. 常见的典型数据结构有: 链表 栈和队列 树 图 上述可以延伸出各种各样的术 ...

  8. 数据结构和算法(Golang实现)(12)常见数据结构-链表

    链表 讲数据结构就离不开讲链表.因为数据结构是用来组织数据的,如何将一个数据关联到另外一个数据呢?链表可以将数据和数据之间关联起来,从一个数据指向另外一个数据. 一.链表 定义: 链表由一个个数据节点 ...

  9. 数据结构和算法(Golang实现)(13)常见数据结构-可变长数组

    可变长数组 因为数组大小是固定的,当数据元素特别多时,固定的数组无法储存这么多的值,所以可变长数组出现了,这也是一种数据结构.在Golang语言中,可变长数组被内置在语言里面:切片slice. sli ...

随机推荐

  1. SQL注入截取字符串函数

    在sql注入中,往往会用到截取字符串的问题,例如不回显的情况下进行的注入,也成为盲注,这种情况下往往需要一个一个字符的去猜解,过程中需要用到截取字符串.本文中主要列举三个函数和该函数注入过程中的一些用 ...

  2. meta头部标签意义作用!

    1.<meta name="viewport" id="viewport" content="width=device-width, initi ...

  3. C#常用操作类库五(电脑操作类)

    /// <summary> /// Computer Information /// </summary> public class ComputerHelper { publ ...

  4. (转) Xcode 7 Bitcode

    Xcode 7 Bitcode的工作流程及安全性评估 2015-12-18 06:13 编辑: suiling 分类:iOS开发 来源:FreeBuf黑客与极客 简介 随着 Xcode 7 的发布,苹 ...

  5. SILVERLIGHT 应急卫生模拟演练项目之loading界面实现

    第一次在博客园写文章 俺是菜鸟 有不足之处还请大佬们多多指教 第一次也不知道该写啥 俺就拿自己最近做的一个项目 来细说吧 俺们公司是做医疗卫生方面的  其中有一块涉及到应急卫生模拟演练方面 这块分到我 ...

  6. linux进程命令

    1. ps命令 命令 命令名称: 命令名称: ps 功能: 功能: 查询正在执行的进程 语法: 可选参数] 语法: ps [可选参数] 描述: 命令提供 命令提供Linux系统中正在发生的事情的   ...

  7. Java复习-oop

    我们可理解“纯粹”的面向对象程序设计方法是什么样的:(1) 所有东西都是对象.可将对象想象成一种新型变量:它保存着数据,但可要求它对自身进行操作.理论上讲,可从要解决的问题身上提出所有概念性的组件,然 ...

  8. FZU 1759 欧拉函数 降幂公式

    Description   Given A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,C<=1000 ...

  9. MySQL数据库之------DOS命令行的基本操作

    1.   进入D盘的如下路径: 按住   ctrl+shift  ,右键,选择在此处打开命令行窗口.出现图2.   图   1  图 2 2. .     3.   图 3  4.    图 4   ...

  10. SAX解析DOM4J的方法总结

    <二 .利用SAX进行DOM解析DOM4J的基本练习>    一. 本次总结用到的xml文档    <?xml version="1.0" encoding=&q ...