前言:做爲一個非科班出身,自學前端過程當中知道學習數據結構與算法的重要性,可是網上推薦的《算法導論》看到厚度和翻了兩章就沒有動力翻下去了,因而打算從基礎性的書本看起,結合本身看的書的總結和網上的參考文章,從最基礎的數據結構用JavaScript實現作起,擴展到對應的算法題,一步步從零基礎開始準備數據結構與算法。前端
學習計劃分爲三個步驟:git
下面是是學習計劃的第一步,《學習JavaScript數據結構與算法》實現目錄:github
具體代碼實現Github地址:github.com/yangyang190…算法
Stack實現數組
Stack-進制轉換問題數據結構
Stack-平衡圓括號問題學習
查找數組中某個數的位置code
使用歸併排序合併兩個有序數組排序
電話號碼的組合問題(公式運算,主要涉及排列組合)遞歸
Queue實現
Queue-deque實現(雙端隊列)
Queue-擊鼓傳花遊戲問題(循環隊列)
Queue-迴文檢查器問題(雙端隊列)
單向鏈表和雙向鏈表實現
循環鏈表實現
鏈表排序問題
環形鏈表問題
Set實現
集合運算(並、交、差、子集,ES5和ES6以及擴展運算符實現)
惟一的摩爾斯密碼詞問題
兩個數組的交集Ⅰ問題
Map實現
兩個數組的交集Ⅱ問題
HasbTable實現
散列表處理衝突
字符串中的第一個惟一字符問題
計算一個數的階乘
斐波那契數列
復原IP地址問題
二叉樹和二叉搜索樹
樹的遍歷(中序遍歷、先序遍歷和後序遍歷)
搜索樹中的值
自平衡樹(AVL樹和紅黑樹)
後記:針對前端零基礎學習數據結構與算法,建議是翻看《學習JavaScript數據結構與算法》,一步步實現其中的代碼,同時能夠翻看《個人第一本算法書》和配套APP、《圖解算法》、《數據結構與算法圖解》,這三本書主要講解理論和思路,能夠比較快速翻看,看完《學習JavaScript數據結構與算法》,就能夠看《劍指Offer》,是一個進階訓練,網上有JavaScript版本代碼,我會整理到Github項目中,而後再去leetcode,有這樣的學習計劃,主要是想對從零基礎學習數據結構與算法的同窗有個過渡學習的過程,我也會按照這個步驟在Github中更新代碼,最後感謝網上無私貢獻思路和代碼的人。