課本源碼部分
第2章 線性表 - 單鏈表順序存儲結構
——《數據結構》-嚴蔚敏.吳偉民版
★有疑問先閱讀★
源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明
課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯
習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯
本源碼引入的文件 鏈接☛ Status.h
文檔中源碼及測試數據存放目錄:數據結構\▲課本算法實現\▲02 線性表\01 SequenceList
概述
數據結構的學習當然要從線性表學起,而線性表里首先需要學習單鏈表,這里從單鏈表最簡單的順序存儲結構(本質就是可變數組存儲)開始。
解析
單鏈表強調元素在邏輯上緊密相鄰,所以首先想到用數組存儲。但是普通數組有着無法克服的容量限制,在不知道輸入有多少的情況下,很難確定出一個合適的容量。對此,一個較好的解決方案就是使用動態數組。首先用malloc申請一塊擁有指定初始容量的內存,這塊內存用作存儲單鏈表元素,當錄入的內容不斷增加,以至於超出了初始容量時,就用calloc擴展內存容量,這樣就做到了既不浪費內存,又可以讓單鏈表容量隨輸入的增加而自適應大小。
單鏈表順序存儲結構如下圖:
可能涉及到的語法難點
剛接觸數據結構的同學,單鏈表順序存儲結構可能會是其面對的第一個坎。這里涉及到了結構體、動態數組、結構指針,甚至還有函數變量(函數做參數,本質是函數指針),所以需要有相對扎實的語言語法基礎。當然,這也並不是說一定得掌握了高級語法才能開始學習數據結構,可以先將語言學到入門(入門意味着學會了提問),再邊學數據結構邊鞏固語法。一定要親自動手寫一寫,否則,肯定學不好。