復合物件解析為XML的順序表演算法的改進

2021-08-30 20:14:20 字數 461 閱讀 8391

上次的演算法採用的演算法,不適合生成相對路徑,另乙個的弊端在於,如果這個解析樹太過龐大,那麼用來表示路徑的陣列就越龐大,占用了大量的空間,針對這一點,我又進行了改進,從而獲得了乙個使用空間較少的演算法。

此演算法也可容易的生成相對路徑。看例子,這次順序表的結構發生了變化:

本次在儲存結構上發生了變化,最上面一行表示儲存的節點,下面的數字代表是該節點父節點所在的位置。當發現節點d已經存在時,記錄下d的父節點位置1,然後從節點c開始向上查詢父節點,如果一直查詢到某個節點父節點的值小於1,說明他們不再乙個分支上,在沿著d往上查詢,相互交替,一直到他們到達根節點或者連續兩個父節點相同,這時就可以組合出這個相對路徑了。

復合物件解析為XML的順序表演算法

上兩個圖,說明復合物件的關係以及xml表示的方法 簡單來說就是root中有objecta跟objectb,objectb中包含objectc,objectc中又包含了objecta,即引用了objecta。注意看objectc這個節點中,reference屬性使用相對路徑表示出了objecta的位置...

順序表的合併算

將兩個有序順序表合併為乙個新的有序順序表 include include define maxsize 20 typedef struct sqlist 鍊錶初始化 intlistinit sqlist l l length 0 return1 void printlist sqlist l pri...

C 物件的構造順序解析

include using namespace std class test test test const test obj void operator const test obj private int ma int main 以上 的執行結果是 當我們使用test t1 test 50 拷貝...