首先看看这三种数据结构:
第一种,只存一个数组:
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属性对应的值了
哈希存的东西很多,不一定是字符串类型的或数值,它还可以存函数方法等,个人感觉不错。
相关推荐
大二上的数据结构课设,采用python实现一个包含三种数据结构的英汉词典,用三种数据结构分别存储以及_-Compact-English-Chinese-Dictionary
以下是这三种数据结构的详细解释和实验过程。 1. **顺序存储结构的线性表实现** - **问题描述**:顺序存储结构是指数据元素在内存中按照其逻辑顺序依次存储。线性表是最基本的数据结构之一,包括插入、删除和查找...
在这个压缩包中,包含的是三种基本线性数据结构的实现:线性表、栈和队列,每种都有数组和链式两种常见方式的实现。接下来,我们将深入探讨这些数据结构及其在C++中的实现。 1. **线性表**: - **数组实现(AList....
压缩包中的代码可能涵盖了这三种数据结构的基本操作实现,例如用C++、Java或Python等语言编写。通过学习和实践这些代码,你可以深入了解数据结构的工作原理,并提升编程能力。同时,理解这些基本数据结构对于学习和...
在无法使用二叉查找树的时候,这三种数据结构证明对查找是很有用的。他们是:AVL树、红黑树和跳跃表。 第16章讨论了图以及图的算法。图在表示许多不同的数据类型时非常有用,特别是网络的情况。最后,第17章向读者...
数据结构是计算机科学中的核心概念,它涉及到如何有效地组织和管理数据,以便于高效地进行...在压缩包中的"3.ds"文件中,很可能是包含了关于这三种数据结构的详细讲解和源码示例,对于学习和巩固这些知识非常有帮助。
算法分析可以分为Best Case、Worst Case和Average Case三种,分别对应算法在最优、最坏和平均情况下的性能。算法分析的结果可以用来选择合适的算法和数据结构,以提高程序的性能和效率。 数学预备知识 数学预备...
下面将详细阐述这三种数据结构及其在C#语言中的实现。 首先,顺序表是一种线性数据结构,它在内存中以连续的存储单元存储元素。在C#中,我们可以使用数组来实现顺序表。数组提供了快速访问元素的能力,因为可以通过...
在实验报告中,学生应该清楚地解释每种数据结构的工作原理,展示他们的代码实现,包括关键函数的详细注释,并分析其运行效率。此外,学生还应反思实验过程中的困难和挑战,以及如何克服这些问题。最后,通过对比不同...
例如,栈和队列就是两种不同的ADT,虽然它们的逻辑结构和存储结构可能相同,但由于运算集合(入栈、出栈、入队、出队)不同,所以是两种独立的数据结构。 3. 算法是解决问题的精确步骤,它有五个关键特性:有限性...
* 树结构:是一种数据结构,用于存储一组有层次关系的数据元素。 * 图结构:是一种数据结构,用于存储一组有关系的数据元素。 本资源涵盖了数据结构的基本概念、算法和程序设计、时间复杂度和空间复杂度、数据结构...
《数据结构(C++语言版)第三版_邓俊辉》是一本深受欢迎的教材,它专为学习数据结构和算法的计算机科学与技术学生及专业人士设计。这本书由邓俊辉教授编写,以其清晰的讲解风格和丰富的实例而闻名。第三版在前两版的...
维尔特特别强调了数组、记录和集合这三种数据结构。数组是一种线性结构,可以存储相同类型的数据集合,而记录则是一种复合数据类型,可以存储不同类型的数据。集合是由无序的元素构成的集合类型。书中详细讨论了这些...
3. **栈与队列**:栈是一种后进先出(LIFO)的数据结构,常用于函数调用、表达式求值等场景。队列是先进先出(FIFO)的数据结构,适用于任务调度、打印队列等。 4. **树形结构**:树是层次化的数据结构,包括二叉树...
栈是一种后进先出(LIFO)的数据结构,常用于表达式求值和递归;队列则是先进先出(FIFO)的结构,常见于任务调度。树(如二叉树、平衡树)和图则用于表示复杂关系,如搜索和遍历问题。 4. **排序和查找**:课件会...
《数据结构教程第三版》由李春葆编写,是一本广泛使用的教材,涵盖了数据结构的基础理论和实践应用。本书不仅提供了详细的概念解释,还配以丰富的习题,帮助学生巩固所学知识。 1. **数组**:数组是最基本的数据...
从逻辑关系上讲,数据结构主要分为集合、线性结构、树结构和图结构四种。顺序存储结构和链接存储结构是两种基本的数据存储方法,不论哪种存储结构,都要存储两方面的内容:数据元素和数据元素之间的关系。 3. 算法...
通过对这三种数据结构的学习,读者可以了解到如何有效地管理和访问数据,以及如何根据具体应用场景选择合适的数据结构。 #### 总结 《数据结构与算法分析–C++描述》是一本非常适合初学者和进阶读者使用的教材。...
邓俊辉教授的《数据结构(C++语言版)第三版》是一本深入浅出的数据结构教材,特别适合C++编程者学习。该书以其详尽的讲解和丰富的实例,深受广大读者喜爱。 本书首先介绍了数据结构的基本概念,包括数组、链表、栈...