`
moneyinto
  • 浏览: 32459 次
  • 性别: Icon_minigender_1
  • 来自: 东台
社区版块
存档分类
最新评论

三种数据结构

阅读更多

首先看看这三种数据结构:

第一种,只存一个数组:

activities = [  
    {  
        name: "first activity",  
        sign_ups:[],  
        bids:[]  
    },  
    {  
        name: "second activity",  
        sign_ups: [  
            {  
                name:"仝键",  
                phone:"13600000000"  
            }  
        ],  
        bids:[  
            {  
                name:"竞价1",  
                biddings : [  
                    {  
                        name: "仝键",  
                        phone:"13600000000",  
                        price: "12"  
                    }  
                ]  
            }  
        ]  
    }  
]  

 第二种,利用哈希存储数据:

activities = {  
    "0":{  
        name: "first activity",  
        sign_ups:[],  
        bids:[],  
        biddings:{}  
    },  
    "1": {  
        name: "second activity",  
        sign_ups: [  
            {  
                name:"仝键",  
                phone:"13600000000"  
            }  
        ],  
        bids:["竞价1","竞价2"],  
        biddings:{  
            "竞价1":[  
                {  
                    phone:"13600000000",  
                    price: "12"  
                }  
            ],  
            "竞价2": [  
                {  
                    phone:"13600000000",  
                    price: "10"  
                }  
            ]  
        }  
    }  
}  

 第三种,分成几个数组,层次少了:

activities = [  
    {  
        id:"0",  
        name: "first activity"          
    },  
    {  
        id:"1",  
        name: "second activity"  
    }  
];  
  
sign_ups = [  
    {  
        name:"仝键",  
        phone:"13600000000",  
        activity_id:"0"  
    },{  
        name:"仝",  
        phone:"13600000000",  
        activity_id:"1"  
    }  
]  
bids = [  
    {  
        name: "竞价1",  
        activity_id:"0",  
        biddings:[  
            {  
                phone:"13600000000",  
                price: "9"  
            }  
        ]  
    }  
]  

 对于这三种结构,第一种只存一个数组,层次嵌套比较深,在存取数据时特别麻烦,要根据条件一层一层的遍历查找,比较耗内存,影响运行速度,但在信息匹配上,第一种还是挺方便的,不要太多的判断匹配。第二种是哈希的存储方式,与第一种相比,多出一个竞价报名的数组,在存取上优于第一种,稍微简单了。第三种数据结构,只有一层或两层,结构比较清晰,不需要繁琐的遍历查找,存取上很方便,但是在信息的匹配上会有一些麻烦,当时写时,在匹配信息上比较让我头疼。

 

关于这三种存储的方式,我比较喜欢第二种,利用哈希来存储,下面就来介绍一下哈希是如何存取的。

var a = {};    //定义一个变量为哈希
a.name = "moneyinto";   //第一种存储方式
a["age"] = "23";     //第二种存储方式
console.log(a);     
//object {name:"moneyinto",age:"23"}

var b = a.name;      //b的值为moenyinto

a.age = "22";      //这样就直接更改了age属性对应的值了

 哈希存的东西很多,不一定是字符串类型的或数值,它还可以存函数方法等,个人感觉不错。

0
0
分享到:
评论
5 楼 moneyinto 2014-07-27  
yoyo837 写道

a[name] = moneyinto;
name和moneyinto都未定义
你这啥意思呢?
不应该是a['name'] = 'moneyinto'加引号吗?


哦,我懂你的意思了,上面写的有点问题了,一直都是用a.name;没有注意到第二种存法要加引号,谢谢你指出问题,以后还望多多指教。
4 楼 yoyo837 2014-07-26  
moneyinto 写道
这是哈希的存储方式,a[age] = "23";那么就会在a这个哈希里存入一个属性为age,对应值为23的数据,这不需要声明,
var a = {};
console.log(a);  //object{}

a.name = moneyinto;或a[name] = moneyinto; 
console.log(a);    //{name:"moneyinto"}

a.age = "23";或a[age] = "23";
console.log(a);   // {name:"moneyinto",age:"23"}

你可以在浏览器右击审查元素的console里输入试试,实践一下你就明白了



a[name] = moneyinto;
name和moneyinto都未定义
你这啥意思呢?
不应该是a['name'] = 'moneyinto'加引号吗?
3 楼 chenyue1 2014-07-25  
yoyo837 写道
a[age] = "23";     //第二种存储方式 

age在哪里申明的?



这是哈希的存储方式,a[age] = "23";那么就会在a这个哈希里存入一个属性为age,对应值为23的数据,这不需要声明,
var a = {};
console.log(a);  //object{}

a.name = moneyinto;或a[name] = moneyinto; 
console.log(a);    //{name:"moneyinto"}

a.age = "23";或a[age] = "23";
console.log(a);   // {name:"moneyinto",age:"23"}

你可以在浏览器右击审查元素的console里输入试试,实践一下你就明白了
2 楼 moneyinto 2014-07-25  
这是哈希的存储方式,a[age] = "23";那么就会在a这个哈希里存入一个属性为age,对应值为23的数据,这不需要声明,
var a = {};
console.log(a);  //object{}

a.name = moneyinto;或a[name] = moneyinto; 
console.log(a);    //{name:"moneyinto"}

a.age = "23";或a[age] = "23";
console.log(a);   // {name:"moneyinto",age:"23"}

你可以在浏览器右击审查元素的console里输入试试,实践一下你就明白了
1 楼 yoyo837 2014-07-25  
a[age] = "23";     //第二种存储方式 

age在哪里申明的?

相关推荐

    数据结构与算法:语言描述(中英文)

    在无法使用二叉查找树的时候,这三种数据结构证明对查找是很有用的。他们是:AVL树、红黑树和跳跃表。 第16章讨论了图以及图的算法。图在表示许多不同的数据类型时非常有用,特别是网络的情况。最后,第17章向读者...

    三种线性数据结构的实现

    我自己写的三种线性数据结构的实现,即线性表\栈\队列的数组及链式实现

    数据结构与算法研究(强烈推荐)

    内容提要 第1章包含离散数学和递归的一些复习材料。我相信对递归做到泰然处之的惟一办法是反复不断地看一些好的用法。因此,除第5章外,递归...对来自第4章到第6章的三种数据结构以及本章介绍的斐波那契堆进行了分析。

    数据结构 二叉树三种遍历的非递归算法(背诵版).doc

    数据结构 二叉树三种遍历的非递归算法(背诵版). 数据结构 二叉树三种遍历的非递归算法(背诵版). 数据结构 二叉树三种遍历的非递归算法(背诵版).

    C++使用字典树,平衡树,散列表实现英汉字典源代码,数据结构课程设计

    对于三种数据结构的具体操作会在之后进行具体说明。用户界面采用的是C++的现成框架QT实现,QT中的大多数采用的是代码进行设计,部分才取的是ui进行设计,最后通过QT中的 connect函数 对数据结构部分和用户界面部分

    三维空间数据模型与数据结构.pptx

    三维空间数据模型与 数据结构专业:地图学与地理信息系统姓名:张小强 三维空间数据模型与数据结构全文共28页,当前为第1页。 提纲 1基本概念 2三维空间数据模型 3疑问 三维空间数据模型与数据结构全文共28页,当前...

    数据结构报告模板.doc

    数据结构(data structure)是带有结构特性的...简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构

    空间数据结构.pptx

    空间数据结构是数据逻辑模型与数据文件格式间的桥梁 选择一种数据逻辑模型对空间数据进行描述 一种数据结构对该模型进行表达 一种适合记录该结构的文件格式 桥梁 空间数据结构全文共82页,当前为第2页。 数据结构即...

    [详细完整版]数据结构.txt

    数据结构包括数据的逻辑结构、 数据的储存结构 和数据的运算三个方面。 2. 数据结构包括 逻辑结构 、数据的存储结构和数据的运算三个方面。 3. 在算法"正确"的前提下,评价算法主要有两个指标是:时间复杂度和 空间...

    数据结构设计与应用.doc

    逻辑结构 中图分类号:tp311.12文献标识码:a文章编号:1007-9599 (2013) 06-0000-02 1什么是数据结构 数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操 作的数据元素的集合。...

    自定义数据结构

    网上实现自定义数据结构时间接使用了其他高级的结构,本次我仅仅使用了数组实现了泛型 stack queue dictionary 三种数据结构,且实现了IEnumerable 接口。

    数据结构习题解答(C语言版)

    数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示(又称映像)。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及...

    数据结构 树、二叉树的数据结构 哈夫曼树

    2. 实现哈夫曼树数据结构,使用哈夫曼树完成如下文档的编码与译码,假设该文档由5种符号字符(A、B、C、D、E)构成 ABACDEABBCEABAACCCDEACCBAABCCCA 3. 选做:实现二叉树的中序遍历线索化数据结构 4. 选做:使用...

    数据结构在现实生活中的应用.doc

    数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分, 数据的逻辑结构,数据的存储结构和数据运算结构。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同 ...

    数据结构 存储表示 数据元素

    本章的重点是了解数据结构的逻辑结构、存储结构、数据的运算三方面的概念及相互关系,难点是算法复杂度的分析方法。 需要达到<识记>层次的基本概念和术语有:数据、数据元素、数据项、数据结构。特别是数据结构的...

    数据结构二叉树三种遍历

    二叉树的三种遍历的非递归算法背诵版,关于数据结构课件总结

    数据结构与算法分析

    作者非常注意对每一种数据结构的不同存储方法及有关算法进行分析比较。书中还引入了一些比较高级的数据结构与先进的算法分析技术,并介绍了可计算性理论的一般知识。书中分别给出了C++实现方法和伪码实现方法,便于...

    数据结构高分笔记

    (3)针对近年数据结构大题的出题风格(比如算法设计题目中的三段式题目:①表述算法思想;②写出算法描述;③计算算法的时间和空间复杂度),设计了独特的真题仿造部分,让读者在复习的过程中逐渐适应不同类型的...

    Python的数据结构.pdf

    Python中的绝⼤部分数据结构可以被最终分解为三种类型:集合(Set),序列(Sequence),映射(Mapping)。这表明了数据存储时 所需的基本单位,其重要性如同欧式⼏何公理之于欧式空间。 1、集合是独⽴于标量,序列...

    数据结构算法演示系统

    《数据结构》(C语言版) 算法源码及运行演示系统使用说明 一、启动演示系统 双击演示系统应用程序文件“DS_VC_ALGO.EXE”启动演示系统,出现图1所示界面。 <br> <br> <br> <br> <br> ...

Global site tag (gtag.js) - Google Analytics