在JavaScript中,數據結構是指相互之間存在一種或多種特定關系的數據元素的集合,是帶有結構特性的數據元素的集合。常用的數據結構有:數組、列表、棧、隊列、鏈表、字典、集合等等。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
什么是數據結構?
在計算機科學中,數據結構(英語:data structure)是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。數據結構起源于程序設計,它不是使我們怎么學會編碼,而是為我們提供一種編程思想,具有更好的思路。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索算法和索引技術有關。
數據結構能做什么?
-
有效的管理數據對象
-
提升運算性能
數據結構的概念定義
數據:
數據:是用來描述一種客觀事物的符號(字符串、數字、json、聲音、圖片…)數據元素:有一定意義的最基本的單位,當我們使用計算機來處理數據的時候,數據元素通常被我們用作一個整體來處理,這個整體又稱記錄數據對象:是指性質相同的數據元素的集合數據項:是組成數據的最小單位
結構:
數據元素相互之間的關系稱之為結構。
結構又分兩種:
-
邏輯結構:指反映數據元素之間的邏輯關系的數據結構,其中的邏輯關系是指數據元素之間的前后件關系,而與他們在計算機中的存儲位置無關
-
存儲結構:指數據的邏輯結構在計算機存儲空間的存放形式
所以,一種數據結構可表示成一種或多種存儲結構
邏輯結構:
集合:集合中的數據成員是無序的松散的關系,且每個數據成員在集合中不能重復線性結構:數據結構中的元素存在一對一的相互關系非線性結構:數據結構中的元素存在一對多或多對多的相互關系
存儲結構:
順序存儲:數組就是典型的順序存儲結構鏈式存儲:鏈表采用的就是鏈式存儲索引存儲:索引存儲的優(yōu)點是檢索速度快,但是需要增加附加的索引表,會占用較多的存儲空間散列存儲:散列存儲使得檢索、增加、刪除節(jié)點的操作都很快,缺點是解決散列沖突會增加時間和空間的開銷,常用的解決散列沖突的方法有開鏈法和線性探測法
常用的數據結構
數組:
一個存儲元素的線性集合(collection),元素可以通過索引來任意存取,索引通常是數字,用來計算元素之間存儲位置的偏移量。
列表:
人們日常生活中經常使用列表:待辦事項列表、購物清單、十佳榜單、最后十名榜單等。
棧:
是一種高效的數據結構,因為數據只能在棧頂添加或刪除,所以這樣的操作很快,而且容易實現。
隊列:
隊列用于存儲按順序排列的數據,先進先出,這點和棧不一樣
鏈表:
鏈表是由一組節(jié)點組成的集合。每個節(jié)點都使用一個對象的引用指向它的后繼。指向另一個節(jié)點的引用叫做鏈
字典:
字典是一種以鍵- 值對形式存儲數據的數據結構,就像電話號碼簿里的名字和電話號碼一樣。
樹:
樹是計算機科學中經常用到的一種數據結構。樹是一種非線性的數據結構,以分層的方式存儲數據。
樹被用來存儲具有層級關系的數據,比如文件系統(tǒng)中的文件;樹還被用來存儲有序列表。
圖:
圖由邊的集合及頂點的集合組成。
散列表:
散列是一種常用的數據存儲技術,散列后的數據可以快速地插入或取用。散列使用的數據結構叫做散列表。
集合:
集合(set)是一種包含不同元素的數據結構。集合中的元素稱為成員。
集合的兩個最重要特性是:首先,集合中的成員是無序的;其次,集合中不允許相同成員存在。
常用的數據結構會在后續(xù)陸續(xù)逐個擊破!
【推薦學習:javascript高級教程】