如何將任意嵌套陣串列示(序列化)為值(和元資料)的一維陣列,以便可以從序列化的一維陣列中重新創建原始嵌套陣列及其結構?
我正在為這個問題尋找一種節省空間的演算法。
例如:
[
[
[1, 2, 3, 4]
],
[
[5, 6, 7, 8],
[9, 10]
]
]
應該序列化/反序列化到/從這樣的東西
[/* elements of meta data* /, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
uj5u.com熱心網友回復:
您可以用一個序串列示一個嵌套陣列,該序列首先包含該陣列的長度(還提供以下內容是子陣列的資訊),然后是元素本身。
如果你只有正數作為你的值,但可以存盤負數,你可以使用負數作為子陣列的指示符(如果沒有,你當然可以只使用偏移量 O,這是你想要的最高數字存盤,并將所有大于 O 的數字視為新子陣列的指示符)。您的示例的序列化版本將如下所示:
[-2, -1, -4, 1, 2, 3, 4, -2, -4, 5, 6, 7, 8, -2, 9, 10]
為了更好地理解它是如何作業的,這里是同一個序列化陣列的縮進版本:
[-2,
-1,
-4
1, 2, 3, 4
-2
-4
5, 6, 7, 8
-2
9, 10
]
這種結構可以使用遞回演算法在線性時間內進行序列化和反序列化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424944.html
