码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript数据结构 持续更新中。。一周后可完结

时间:2017-07-28 23:52:41      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:列表   square   tip   运行   创建   for   eve   return   single   

array:

数组创建:

var troop=new Array(6);                    //创建一个长度为6的数组
var troop=new Array(2,3,5,6,4,7);

数组方法:

var str="I love javascript";
var single=str.split("");           //‘I‘,‘ ‘,‘l‘,‘o‘,.....
var mutipy=str.split(" ");        //‘I‘,‘love‘,‘javascript‘


var troop=new Array(2,5,6,8,9,4,1,2);
var index=troop.indexOf(2);    //index=0

var names=[‘jack‘,‘mike‘,‘molly‘];
var str=names.join();               //str=‘jack,mike,molly‘

var nums=[];
nums.push(3,4);
nums.shift(1,2);                      //nums=[1,2,3,4];
nums.pop();                           //nums=[1,2,3];
nums.shift();                          //nums=[2,3];
nums.splice(0,1,5,6)                //nums=[5,6,3];

对数组元素进行操作(不产生新数组) var nums=[2,4,6,8]; function isEven(num){return num%2==0;}
function square(num){return num*num;}
nums.forEach(square); //对数组所有元素平方
var swit=nums.every(isEven); //判断数组元素是否均为偶数,若是,返回true;

产生新数组:
filter,map

二元数组:
for(var i=0;i<5;i++)
troop[i]=[];

栈和列表其实就是对数组和数组方法的封装,所以我省略不写。 

链表:

    var linkLIst=function(){
        var Node=function(element){
            this.element=element;
            this.next=null;
        };
        this.length=0;        
        this.head=new Node("head");                 //定义链表头,长度,同时,定义了四个方法。
        this.append=append;
        this.insert=insert;        
        this.remove=remove;
        this.display=display;
        
        function append(element){
            var newNode=new Node(element);          //链表在末尾添加新节点,注意的是,node.next仍是node类型,故在添加新节点时要调用节点构造函数
            var thisNode=this.head;
this.length++;
if(thisNode.element==null) //在写循环语句或者判断语句的时候要注意,一个空节点是没有element元素的, { //因此要先确保thisNode为非空节点,该if判断语句才能正常运行,不然会报错。 thisNode.element=element; }else{ while(thisNode.next) { thisNode=thisNode.next; } thisNode.next=newNode; } }; function insert(elementbe,element){ var nodebe=this.head; this.length++; var insertNode=new Node(element); while(!(nodebe.element===elementbe)){ nodebe=nodebe.next; }; var nodeafter=nodebe.next; nodebe.next=insertNode; insertNode.next=nodeafter; }; function remove(element){ var nodeDelete=this.head; while(!(nodeDelete.next.element===element)) { nodeDelete=nodeDelete.next; }; var nodeAfter=nodeDelete.next.next; //next可叠加多次 nodeDelete.next=nodeAfter; }; function display(){ var thisNode=this.head; var str=""; while(thisNode){ str+=thisNode.element+" "; thisNode=thisNode.next; } return str; } }; var newlist=new linkLIst(); //如果调用构造函数为什么用new不太理解,可以参考上一篇博文我对this的简析 newlist.append("1");newlist.append("2");newlist.append("3");newlist.append("4");newlist.insert("3","5") var str=newlist.display(); alert(str);

 

JavaScript数据结构 持续更新中。。一周后可完结

标签:列表   square   tip   运行   创建   for   eve   return   single   

原文地址:http://www.cnblogs.com/puffmoff/p/7246809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!