從本節開始,您將系統地學習資料結構,首先您將了解什麼是資料結構。
到目前為止,資料結構還沒有標準的定義。 市面上有很多解釋資料結構的書籍和**,以及一些專家給出的關於什麼是資料結構的答案:
1)資料結構是具有結構的資料元素的集合。
2)資料結構是一門研究計算機在非數值計算程式設計問題中操作的物件及其關係和操作的學科。
3)資料結構是彼此之間具有乙個或多個特定關係的資料元素的集合。
這些答案中的每乙個都試圖從不同的角度解釋“資料結構”的含義,但遺憾的是,只有對資料結構有一定了解的人才能掌握這些詞的含義。 對於從未接觸過資料結構的讀者來說,他們根本不知道自己在說什麼,如果他們被殺了,也無法理解。
很多人學習資料結構很久了,臉上還是掛著問號,不知道學習資料結構有什麼用,歸根結底,他們不懂什麼是資料結構。
接下來,我將用通俗易懂的語言回答“什麼是資料結構”這個問題。
溫馨提示:如果你想系統地學習資料結構,請輸入我個人**xiexuewugithub.IO,擁有一整套資料結構和演算法教程,提供了完整且可執行的C語言程式,非常適合有C語言基礎的初學者。
資料結構作為一門獨立的學科,直到 1968 年才開始。 以前,資料結構的內容分散在其他計算機課程中,例如編譯原理、作業系統等。
資料結構並不像你想象的那麼複雜,它教會了你一件事:如何有效地儲存資料。
在資料結構中,所有可以被計算機處理的資訊都稱為資料,例如數值、字元、影象、音訊等。
很多人認為儲存資料是一件簡單的事情,各種程式語言提供了儲存資料的方法,比如常用變數、陣列等,甚至將資料儲存在檔案中。 儲存資料並不難。 真正的挑戰是儲存資料,同時儲存資料之間的關係。
舉個簡單的例子,每個家族都有乙個家譜或家譜,記錄了有關家族血統和繁殖的資訊,如圖 1 中的家譜圖
圖 1 家譜。
在儲存這張圖片的時候,僅僅儲存這些名字是不夠的,還要儲存它們之間的關係,比如張亮是張平的父親,張磊的祖先等等。
例如,您必須使用過導航軟體(如高騰導航、騰訊地圖等),為了實現準確的導航,軟體必須儲存大量資料,包括各省、市、區、縣的道路、建築物、紅綠燈等位置資訊,以及各地區的天氣資訊、高速公路資訊等。
圖2 導航圖。
這些資訊就是資料,資料之間的關係錯綜複雜,這些關係能否正確儲存,直接決定了軟體導航的準確性。
在家譜圖、道路資訊等場景中,資料本身的儲存並不難,但真正的難點在於如何儲存資料之間的關係。 通過學習資料結構,您將獲得許多儲存資料的場景,以便您可以儲存資料,同時正確儲存資料之間的關係。
什麼是資料結構,在我看來,它是一門教你如何儲存具有複雜關係的資料的學科。
儲存資料(思想、想法)的資料結構的思想可以用任何程式語言實現。 換句話說,無論你知道什麼程式語言,無論你處於什麼開發階段,如果你在處理資料,你必然會使用資料結構。
想要系統學習資料結構的朋友xiexuewu.github.io這**有一整套完整的資料結構和演算法教程,並提供了完整且可執行的C語言程式,非常適合有C語言基礎的初學者。