數據的存儲結構可以分爲以下四種:
(1)順序存儲方法
該方法把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元裏,結點間的邏輯關係由存儲單元的鄰接關係來體現。
由此得到的存儲表示稱爲順序存儲結構 (Sequential Storage Structure),通常藉助程序語言的數組描述。
該方法主要應用於線性的數據結構。非線性的數據結構也可通過某種線性化的方法實現順序存儲。
(2)鏈接存儲方法
該方法不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關係由附加的指針字段表示。由此得到的存儲表示稱爲鏈式存儲結構(Linked Storage Structure),通常藉助於程序語言的指針類型描述。
(3)索引存儲方法
該方法通常在儲存結點信息的同時,還建立附加的索引表。
索引表由若干索引項組成。若每個結點在索引表中都有一個索引項,則該索引表稱之爲稠密索引(Dense Index)。若一組結點在索引表中只對應一個索引項,則該索引表稱爲稀疏索引(Spare Index)。索引項的一般形式是:
(關鍵字、地址)
關鍵字是能唯一標識一個結點的那些數據項。稠密索引中索引項的地址指示結點所在的存儲位置;稀疏索引中索引項的地址指示一組結點的起始存儲位置。
(4)散列存儲方法
該方法的基本思想是:根據結點的關鍵字直接計算出該結點的存儲地址。
四種基本存儲方法,既可單獨使用,也可組合起來對數據結構進行存儲映像。
同一邏輯結構採用不同的存儲方法,可以得到不同的存儲結構。選擇何種存儲結構來表示相應的邏輯結構,視具體要求而定,主要考慮運算方便及算法的時空要求,對數據採取不同的存儲方式在很大程度上會決定相應算法的運行效率。