【Day 01】认识资料结构 Data Structure ( 使用 JavaScript )

一、什麽是资料结构 ?

当我们撰写程序时,会宣告变数来存放资料,这些资料会储存在记忆体中,在我们需要时可以拿出来使用。
这边我们可以思考两点:

  • 要储存的资料内容是什麽 ?
  • 资料的储存方式 ( 结构 ) 是什麽 ?

例如:我今天有多个英文单字 ( 资料 ),我要使用 string 还是 array 储存 ( 储存方式 )

资料是一群元素所组成的有限集合;结构是这些元素间的组成关系

这样储存 / 组织资料的方式就称为资料结构 ( data structure )。有时候也会使用资料型态 ( data type )、collection 来描述。

二、抽象的资料型态 ( Abstract Data Type, ADT )

当我们在讨论资料结构时,讨论的是一种抽象概念,而不是特定程序语言中的实作。

举例来说,当我们在谈资料结构 hash table 时,不管是使用 javascript 或 python,概念上都是根据同一个 ADT 概念,来说明该资料结构 hash table 的规格,以及应该具备的方法。

三、资料结构的目的是什麽 ?

资料存放在记忆体中时,需要先将资料定义成最有利的抽象资料型态 ( 符合一定的规格与方法 ),让程序能够有效率地从记忆体中存取这些资料。

资料结构的目的:让你更有效率地把资料存到电脑里或取用,这里的「效率」指的是节省空间 ( 解决空间复杂度 )

四、常见的资料结构有哪些 ?

4-1. String

单引号或双引号所括起来,有位置 ( 索引 ) 和字母

4-2. Array

  • 有顺序性
  • 储存在记忆体中的连续区域 ( 连续的记忆体空间 )
  • 可以快速使用 index 找出资料

4-3. Linked List

  • 资料储存在不同的记忆体位置
  • 透过 pointer 的方法,依特定顺序将多笔资料,排列成线性串列。

4-4. Stack

  • 有顺序性
  • 单边出入 ( 前端 )
  • 後进先出 ( Last in First out, LIFO )

4-5. Queue

  • 有顺序性
  • 不同端出入
  • 先进先出 ( First in First out, FIFO )

4-6. Hash Table ( 杂凑表 )

  • 成对的资料:key-value pair
  • 透过 key 来找 value

原文连结:认识资料结构 Data Structure ( 使用 JavaScript ) - Ted's Point 泰德观点


<<:  Day 16 - 进行影像辨识训练

>>:  Day 16. Hashicorp Vault: Upgrade

[Day19] THM Archangel

URL : https://tryhackme.com/room/archangel IP : 1...

Day38 ATT&CK for ICS - Impact(4)

T0831 Manipulation of Control 攻击者针对工控环境中的设备进行控制,主要...

【程序】我为什麽转职,转职後快乐吗 转生成恶役菜鸟工程师避免 Bad End 的 30 件事 - 22

我为什麽转职, 转职後快乐吗 了解自己 相信自己 自我实现 ...

[ Day 11 ] - DOM

DOM DOM 是什麽呢? DOM(Document Object Model) 当浏览器进入网页时...

Day 17 - Event Handling

使用大括号与驼峰式命名来处理 DOM 是它与原生 jS 的差别。 //jS 写法 <butto...