38、稀疏矩阵的十字链表表示和创建
生活随笔
收集整理的這篇文章主要介紹了
38、稀疏矩阵的十字链表表示和创建
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用三元數組的結構來表示稀疏矩陣,在某些情況下可以節省存儲空間并加快運算速度。但在運算過程中,若稀疏矩陣的非零元素位置發生變化,必將會引起數組中元素的頻繁移動。這時,采用鏈式存儲結構(十字鏈表)表示三元組的線性表更為恰當。
十字鏈表(orthogonal?list)是稀疏矩陣的另一種存儲結構。它是用多重鏈表來存儲稀疏矩陣。十字鏈表適用于操作過程中非零元素的個數及元素位置變動頻繁的稀疏矩陣。
一、基本概念
十字鏈表為矩陣中的每一行設置一個單獨鏈表,同時也為每一列設置一個單獨鏈表。這樣,矩陣中的每個非零元就同時包含在兩個鏈表中(即所在行和所在列的鏈表)。這就大大降低了鏈表的長度,方便了算法中行方向和列方向的搜索,大大降低了算法的時間復雜度。
同一行的非零元素通過right域鏈接成一個鏈表,同一列的非零元素通過down域鏈接成一個鏈表,每一個非零元既是某個行鏈表中的結點,同時又是某個列鏈表中的結點。整個矩陣構成了一個十字交叉的鏈表。故稱為十字鏈表。
二、C語言描述
總結
以上是生活随笔為你收集整理的38、稀疏矩阵的十字链表表示和创建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度剖析JAVA软件工程师
- 下一篇: 斯坦福大学乔布斯演讲之后的感悟