有沒有三維的資料結構?

時間 2021-06-01 19:26:15

1樓:Ivony

我覺得這個問題下面的答案都跑偏了,

事實上單連通鏈本來就是樹的一種,而陣列和單鏈表只是單連通鏈的儲存方式而已。所以根本就不存在什麼一維二維,空間維度是幾何上的定義,和圖一毛錢關係沒有。

如果說陣列和單鏈表是一維的,那麼雜湊表是幾維的?

能表示這種資料結構的空間維度下限這本來就不是乙個良好的定義,絕大多數資料結構都可以用圖來表示,那麼這個問題可以轉換成,能表示這種圖的空間維度下限,是不是覺得怪怪的,圖和空間維度有神馬關係?

如果一定要這樣來說,那麼所有不是平面圖 (圖論)的圖都是三維的,因為他們無法畫在平面上使得所有的邊互不交疊。而且,所有的圖都能在三維上畫出來使得所有的邊互不交疊。

至於樹怎麼變成一維的結構,很多答案看著捉急,,,,,記憶體本來就是個一維的空間怎麼就存不下樹呢?說白了任何乙個圖都可以用乙個二元關係來表示,,,,,,,

2樓:邢暢

有個東西叫做線段樹( Segment tree ),他是對一維線段進行劃分的一種二叉樹 ( Binary tree )。、

那麼將線段樹擴充套件一下,在乙個矩形上不斷的四分象限,就可以得到乙個叫做矩形樹( R-tree )的東西,這是一種四叉樹( Quadtree )。

然後再接再厲,將空間不斷的劃分為八個卦限,就得到了乙個八叉樹( Octree )。在立體幾何和3D影象處理中被頻繁使用的一種資料結構。

當然,你還可以順著這個思路將4維空間劃分,不過這個東西已經沒有辦法用幾何意義表述了(因為真實四維空間體在三維空間不能構劃出來,三維空間生活的人也不可能感知四維空間的存在)。

以上。==update==

看了問題補充我反而不能理解了。

為什麼說陣列和鍊錶是一維呢?因為都是線性的麼?那二維陣列和十字鍊錶算什麼?

為什麼說樹是二維的呢?是因為在紙上可以要畫成乙個圖才能表示麼?那麼樹其實完全可以表示成鏈的(二叉樹的三種遍歷。n叉樹轉鏈…我忘了叫什麼了。)

那麼你的意思是說「需要畫成二維才能直觀的看得出來的資料結構」的話,O tree就是乙個「三維資料結構」,甚至用鍊錶記錄的乙個分層圖也是乙個「三維模型」。

怎麼看js中資料結構有沒有部署了Iterator介面的?

公冶 訪問資料原型中的 Symbol.iterator 如果存在,那麼他就部署了Iterator介面。比如 const a 123 a.proto Symbol.iterator undefined const b 123 b.proto Symbol.iterator Symbol.iterato...

如何設計出精巧的資料結構?

雲悠水澈 這個問題,並不是一篇文章或一本書就能說清楚的,需要對特定問題深入的分析和大量的練習,建議多看一些成熟的協議,這些協議中的資料結構基本都很精巧,總結吸收裡面面對問題的設計思想和技巧。核心是 簡練 清楚明白。比如 iCalendar RFC 5545中怎樣準確標識乙個事務,怎樣處理乙個事務的迴...

剛學C語言,請問有沒有什麼C C 和資料結構好的教材?另外想深入的話還學什麼比較好?

鹹韭菜 好的C教材 C primer plus 好的c 教材 c primer 沒有plus 第五版,effective c 好的資料結構教材 大話資料結構 對初學者非常友好 機械工業出版社翻譯的那本黑皮的資料結構與演算法分析不錯。個人感覺機械工業出版社翻譯的計算機相關書質量都挺好 想深入計算機相關...