摘要:它到底是什么,是作用于數據的結構嗎這同樣是一個模棱兩可的術語。最后我還是搞清楚了數據結構的概念,那就簡單的把術語數據結構稱為數據的結構。目標數據結構系列技術文章,會告訴你數據結構并不是晦澀難懂的,更不是神秘的。
翻譯:瘋狂的技術宅
英文:https://code.tutsplus.com/tut...
說明:本文翻譯自系列文章《Data Structures With JavaScript》,總共為四篇,原作者是在美國硅谷工作的工程師 Cho S. Kim。初次翻譯,如果存在問題歡迎指出和探討。
說明:本專欄文章首發于公眾號:jingchengyideng 。
一直以來,我都認為“數據結構”這個術語是令人困惑的。它到底是什么,是“作用于數據的結構”嗎?這同樣是一個模棱兩可的術語。
當我和同伴們分享自己的困惑時,他們很快就會說:“有結構的數據”。滿意的表情出現在他們臉上,這讓我懷疑自己甚至懷疑人生。我想這就是自己應該知道的。
最后我還是搞清楚了數據結構的概念,那就簡單的把術語“數據結構”稱為“數據的結構”。這樣,我們就把焦點從“數據”(一件事)轉移到了“結構”(組織)。這是一個微妙但非常重要的細節。換句話說,我們不再關注事物本身,而是關注如何組織事物的過程。
讓我們想象一下,假設我們討論的東西都是書籍。那么怎樣做才是合理的呢?是書籍的結構,還是書籍的組織方式呢?在我看來,后者更容易理解。重點在于怎樣組織而不是書籍本身。
不同類型的數據結構書籍,就像數據一樣,可以用多種方式組織起來。假如我們有20本書,那么應該怎樣組織它們呢?
如果我們想要在書架上很快的找到一本參考書,不妨這樣做:把所有的書都按照字母順序排列在書架上,當你需要某一本書時,就可以很快的找到它,因為我們知道書籍是按照字母表的順序擺放的。
如果我們想按照一個特定的順序閱讀所有的書,比如從第一本讀到最后一本,那么我們就應該按照這種順序把書放置在書架上,并且還需要制定一個規則來約束這種閱讀順序。
如果我們沒有足夠的空間把所有的書全都放在一起,就需要一種能夠快速找到它們的方式進行組織。比如:家里的不同位置散落著20本書,我們就需要一個有兩列的表格,其中第一列列出書的標題,第二列列出其對應的位置。
到這里我們應該已經清楚了,組織書籍的方法有很多,換句話說有很多種不同的數據結構。用于web開發中的數據結構,就像前面書籍的例子一樣,是由我們的需求決定的。
現在我們知道了,不同的需求還需要依賴不同的數據結構來實現。接下來我們還應該知道,當使用和創建這些數據結構時,并不需要什么高深的編碼知識,所有人哪怕是剛入門的小菜鳥都可以創建它。對于前端程序員來講,只需要了解常用的JavaScript基本類型(例如:Boolean)和引用類型(例如:Object)。
如果即使我這樣解釋對你來說也比較難,別擔心,通常我會想象有一個集合,這是一種數據結構,就像一個集合一樣,啊哈,多么狗血的解釋。首先集合不是什么東西,集合是組織數據的一種方式的名字;其次我們要知道,一個集合是用對象創建的。
目標《JavaScript數據結構》系列技術文章,會告訴你數據結構并不是晦澀難懂的,更不是神秘的。相反,它們會使我們的生活更簡單。我將在這個系列的文章中,通過介紹一到兩種類似的數據結構,來證明這點。
大綱由于有太多的數據結構需要被深入討論,限于篇幅,我們將只探討幾種最常見也最重要的數據結構:
棧和隊列
單鏈表和雙鏈表鏈表
樹(深度優先搜索和廣度優先搜索)
總結當我們完成這個系列的時候,我希望你不僅學會了如何實現這些常見的數據結構,而且還能夠靈活的運用到自己的項目中。
當你意識到數據結構在組織數據時所發揮的作用時,會對它更加鐘愛,甚至你會開始用另外一種思路,來考慮應該怎樣組織你的數據。
歡迎掃描二維碼關注公眾號,每天推送我翻譯的技術文章。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/84312.html
摘要:正在失業中的課多周刊第期我們的微信公眾號,更多精彩內容皆在微信公眾號,歡迎關注。若有幫助,請把課多周刊推薦給你的朋友,你的支持是我們最大的動力。是一種禍害譯本文淺談了在中關于的不好之處。淺談超時一運維的排查方式。 正在失業中的《課多周刊》(第3期) 我們的微信公眾號:fed-talk,更多精彩內容皆在微信公眾號,歡迎關注。 若有幫助,請把 課多周刊 推薦給你的朋友,你的支持是我們最大的...
摘要:正在失業中的課多周刊第期我們的微信公眾號,更多精彩內容皆在微信公眾號,歡迎關注。若有幫助,請把課多周刊推薦給你的朋友,你的支持是我們最大的動力。是一種禍害譯本文淺談了在中關于的不好之處。淺談超時一運維的排查方式。 正在失業中的《課多周刊》(第3期) 我們的微信公眾號:fed-talk,更多精彩內容皆在微信公眾號,歡迎關注。 若有幫助,請把 課多周刊 推薦給你的朋友,你的支持是我們最大的...
摘要:原文鏈接譯文原鏈譯我最喜歡的設計模式我最喜歡的設計模式我覺得聊一下我愛用的設計模式應該很有意思。我是一步一步才定下來的,經過一段時間從各種來源吸收和適應直到達到一個能提供我所需的靈活性的模式。 原文鏈接:My Favorite JavaScript Design Pattern譯文原鏈:【譯】我最喜歡的 JavaScript 設計模式 我最喜歡的 JavaScript 設計模式 我覺得...
摘要:我同時也建立了一個基于瀏覽器的版本安裝命令行工具在此之前請先安裝然后在你的命令行中運行以下指令你應該會看到和一個提示。 原文:How does blockchain really work? I built an app to show you.作者:Sean Han譯者:JeLewine 根據維基百科,區塊鏈是: 一個用于維護不斷增長的記錄列表的分布式數據庫,我們稱之為區塊鏈。 這聽...
閱讀 2550·2021-10-11 10:58
閱讀 1031·2019-08-29 13:58
閱讀 1670·2019-08-26 13:32
閱讀 835·2019-08-26 10:40
閱讀 3262·2019-08-26 10:18
閱讀 1761·2019-08-23 14:18
閱讀 1111·2019-08-23 10:54
閱讀 441·2019-08-22 18:39