JS中的算法与数据结构之列表(列表)实例详解

  

本文实例讲述了JS中的算法与数据结构之列表(列表)。分享给大家供大家参考,具体如下:

  

前言

  

前端很少有机会接触到算法,大多都交互性的操作,所以不少前端工程师会抱着这么一种想法:我是做前端的,为什么要学数据结构与算法?没有数据结构与算法,我一样很好的完成工作。实际上,算法是一个宽泛的概念,我们平时写的任何代码都可以成为算法,它是对一个问题的解决方案的准确而完整的描述,是解决一系列问题的清晰指令,它代表着用系统的方法描述解决问题的策略机制。随着现在互联网的飞速发展,前端工程师已不是靠几个选择器操作加链接加事件就能应付的,越来越复杂的产品和基础库,需要坚实的数据结构与算法才能驾驭,所以我认为前端工程师也是应该要重视算法和数据结构,这对于自己的职业发展是有很大帮助的。当然,算法的学习也不是一朝一夕的事情,这是一个过程,得自己去摸索,去实践,去总结,我这里只是将一些常见的算法和数据结构用JavaScript去实现,起到一个抛砖引玉的作用。

  <人力资源/>   

列表(列表)

  

列表是计算机中一种常见的数据结构,日常生活中的购物清单,待办事项等都可以成为列的表,它是一组有序的数据,每个列表中的数据项称为<强>元素强。在javascript中,列表中的元素可以是任意数据类型。列表中可以保存多少元素并没有限定(在实际使用时会受到程序内存的限制)。列表中会有一些常见属性或方法,比如列表中的元素个数,列表当前的位置,向列表末尾增加一个元素,从列表中删除一个元素,清空列表等一系列操作。接下来,我们抽象出一个列表的数据类型定义,并用JS中的数组去实现它。

  

 JS中的算法与数据结构之列表(列表)实例详解”>,<br/>
  列表的数据类型定义</p>
  <h4>列表类</h4>
  
  <pre类=/*定义类*/列表   函数列表(){   这一点。listSize=0;//初始化元素个数为0   这一点。pos=0;//初始化位置为0   这一点。数据存储=[];//初始化空数组来保存列表元素   这一点。明确=清晰;   这一点。发现=;//寻找元素   这一点。toString=toString;//显示列表中的元素   这一点。插入=插入;   这一点。附加=追加;   这一点。删除=删除;   this.front=前面;   这一点。结束=结束;   这一点。prev=prev;   这一点。下一个=下一个;   这一点。长度=长度;//列表中的元素总数   这一点。currPos=currPos;   这一点。移至=函数;   这一点。getElement=getElement;   这一点。包含=包含;//判断给定值是否在列表中   }   之前      

 
  

接着我们来实现这些方法。

  

首先得可以添加元素,所以我们先来编写追加方法

  

<强>附加:向列表中添加一个元素

     //该方法给列表的最后一个位置添加一个新的元素,待插入成功后,更新列表中的元素个数      函数附加(元素){   this.dataStore(这一点。listSize + +]=元素;   }   之前      
 
  

这样我们就可以往列表里面添加元素了,接着我们来看查找找到方法

  

<强>发现:查找列表中的某一个元素

     //该方法通过循环查找给定元素是否在列表中,如果存在返回元素的位置,否则返回1      函数找到(元素){   (var=0;我& lt;this.dataStore。长度;我+ +){   如果这一点。数据存储[我]==元素){   返回我;   }   }   返回1;   }   之前      
 
  

可以插入元素,那总得可以删除了,我们利用删除方法删除一个元素

  

<强>删除:删除列表中的某一元素

     //该方法通过使用发现()方法返回元素的位置对数据存储数组进行截取,如果删除成功,返回正确的,并将listSize的值减1,更新列表长度,否则返回错误的      函数删除(元素){   var foundAt=this.find(元素);   如果(foundAt比;1){   this.dataStore。拼接(foundAt, 1);   ——this.listSize;   返回true;   }   返回错误;   }   之前      
 
  

我想知道我的列表还有多少个元素的时候,就得构建长度方法,

  

<强>长度:返回列表中总的元素个数

     

JS中的算法与数据结构之列表(列表)实例详解