讀《資料結構(C語言版)》(6)

2021-04-06 15:27:28 字數 569 閱讀 6736

本來上一節介紹鏈式表示時,還應提到迴圈鍊錶和雙向鍊錶,但我決定還是不提為好。如果將學習一門課程的方法比作遍歷演算法的話,我覺得廣度優先演算法要比深度優先演算法好。一門全新的課程,如果一開始就進入具體的細節的話,很容易有挫折感,進而喪失興趣。所以如果能對這門課程有乙個大局觀,了解這門課程是講什麼的,涉及那些知識,學了有什麼用,然後再由淺入深、循序漸進的逐步深入應該效果更好。但是很可惜,學校授課時從來都是按照深度優先演算法,把一章的細節講得清清楚楚再進入下一章。結果常常是,上第一節課時還很有興趣的同學在聽完一章後很多都打消了再聽下去的念頭。

既然我是自學,自然是按照廣度優先演算法,不關心每乙個例程是怎麼實現的,先在腦子中建立各種資料結構的概念和模型,更多的細節寫程式時自然會考慮到。順便提一下,我覺得資料結構這門課一定要寫大量的程式才可以真正學透,光是看懂書上的例程不會有太大幫助。套用前面提到的先邏輯後物理的思路,看書是邏輯層面的,只在腦子中弄清概念、建立模型,而寫程式是物理層面的,把腦子中的概念和模型用程式語言描述出來。

回到開頭提到的迴圈鍊錶和雙向鍊錶,我覺得只要理解這兩個概念就可以了,真正寫程式時如果有這種需要,能想起來用它們就可以了,至於實現細節我相信對於乙個熟練程式設計師來說不是什麼問題。

讀資料結構(C語言版)

資料 資料是對現實世界物質的符號表示,在計算機中的意思是能輸入到計算機中進行計算處理的符號為資料 實現是客觀世界在計算機中的表示方式,是程式加工的原材料。資料可以是聲音,文件 資料元素 組成資料的基本構成單位,通常以結構化的形式出現,比如一本書的書目資訊,包含作者,書名,出版刊號,出版社這些資料項,...

讀《資料結構(C語言版)》(4)

從本節開始討論線性表,這次先討論線性表的順序實現。一提到線性表,我們腦子很可能會出現陣列 鍊錶這樣的概念。沒錯,陣列和鍊錶都是線性表,但它們只是線性表的兩種實現,強調的是線性表的物理結構。我們研究乙個資料結構時,一般先從它的邏輯結構入手,等研究清楚了邏輯結構再考慮具體的物理實現。在寫程式時,思路也是...

資料結構(C語言版)

用棧實現數字的進製轉換 10轉8 棧 限定只能在表尾進行插入或者刪除操作的線性表 特點 先進後出 儲存表示方法 順序棧和鏈棧 本文用的順序棧 實現 readonly name code class c include include define stack init size 100 儲存空間初始...