為什麼要學習數據結構

yj勇傑 發佈 2020-02-04T01:58:46+00:00

3.面試中經常問到 為什麼面試官喜歡問數據結構 能夠看出一個同學是否基礎紮實,能夠看出一個人的發展後勁 因為數據結構本身也有難度 問題2:有哪些數據結構 線性表、棧、隊列、串、數組、廣義表、樹、二叉樹、圖 重點是線性表、二叉樹 對於每種數據結構會講解其添加、更新、刪除、查詢、排序

數據結構是教你如何在現有程序的基礎上把它變得更優(運算更快,占用資源更少),它改變的是程序的存儲運算結構而不是程序語言本身。

如果把程序看成一輛汽車,那麼程序語言就構成了這輛車的車身和輪胎。而算法則是這輛車的核心--發動機。這輛車跑得是快是慢,關鍵就在於發動機的好壞,而數據結構就是用來改造發動機的。

數據結構是編程的思維,編程的靈魂,算法的精髓所在,沒有了數據結構,程序就好像一個空核,最低效率的。學習數據結構的目的就是提高自己的思想,"想成為高手,數據結構一定要強"。


如果說學習語文的最終目的是寫小說的話,那麼能不能在識字、組詞、造句後就直接寫小說了,肯定是不行的,

中間還有一個必經的階段:就是寫作文。寫作文的直接目的有兩個:

1.掌握寫作套路、技巧(理論水平),保證以後寫小說的質量

2.提高寫作水平(動手能力),為以後寫小說打好基礎

學習一門計算機語言就好比識字階段,以後開發項目就好比寫小說,中間的離不開數據結構的學習,就好比寫作文。

1.高級電腦程式設計的理論指導

我塞牙了,那麼就要用到牙籤這"數據結構",當然你用指甲也行,只不過"性能"沒那麼好;

我要擰螺母,肯定用扳手這個"數據結構",當然你用鉗子也行,只不過也沒那麼好用。

學習數據結構,就是為了了解以後在IT行業里搬磚需要用到什麼工具,這些工具有什麼利弊,應用於什麼場景。

你會發現這些基礎的"工具"也存在著一些缺陷,你不滿足於此工具,此時,你就開始自己在這些數據結構的基礎上加以改造,

這就叫做自定義數據結構

掌握了開車的本領,桑塔納、寶馬、奔馳、老年代步車都會開。

數據結構可以採用不同的語言來描述和實現,此處自然是Java語言

2.提升編程能力

個人認為數據結構是編程最重要的基本功沒有之一

學習了Java、python、android、C、C++,你就成為編程高手了嗎。

不見得,每門語言都是入門而已,水平並沒有得到多少鍛鍊

學習一門數據結構,掌握了各種簡單、複雜數據類型的算法,編程能力就會有大的提升,甚至質的飛躍,內力深厚了。

3.面試中經常問到

為什麼面試官喜歡問數據結構

能夠看出一個同學是否基礎紮實,能夠看出一個人的發展後勁

因為數據結構本身也有難度

問題2:有哪些數據結構

線性表、棧、隊列、(字符)串、數組、廣義表、樹、二叉樹、圖

重點是線性表、二叉樹

對於每種數據結構會講解其添加、更新、刪除、查詢、排序等操作的實現

數據結構與算法不可分

對於查詢和排序一般單獨拿出來講解

我們的數據結構要講解哪些內容

1.數據結構與算法入門

2.各種數據結構:線性表、棧、隊列、(遞歸) 樹、二叉樹、圖

3.查找和排序

問題3:學習數據結構的四種境界

境界1:聽懂理論、聽懂算法思路 (理論家、眼高手低,總比不知道強多了)

境界2:完成主要數據結構基本算法的實現(理論+實踐,數據結構入門了)

境界3:完成更多數據結構更多算法的實現(進步提高數據結構功底)

境界4:融會貫通、舉一反三,在後續開發中綜合應用數據結構知識(數據結構就是哲學思想,只要和實踐結合才能學好)


學習數據結構不是一日之功,對於初學者要達到境界2,後續學習和工作中不斷研究學習

關鍵字: