專利名稱::檢驗樹形結(jié)構(gòu)節(jié)點重復(fù)的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計算機應(yīng)用
技術(shù)領(lǐng)域:
,具體地說是樹形結(jié)構(gòu)中各個節(jié)點是否重復(fù)的檢測的方法或樹形結(jié)構(gòu)路徑檢測的檢查方法。2、技術(shù)背景在當(dāng)前的各類軟件應(yīng)用中,類似于WINDOWS的資源管理器左邊的樹形結(jié)構(gòu)越來越多,在有些結(jié)構(gòu)的定義中,比如ERP領(lǐng)域的BOM(物料清單),樹形結(jié)構(gòu)是不允許出現(xiàn)重復(fù)的。已知這類重復(fù)性檢驗的方式有多種,但一般都效率較低,并且不能說明節(jié)點重復(fù)的原因和路徑。3、
發(fā)明內(nèi)容本發(fā)明的目的是提供一種檢驗樹形結(jié)構(gòu)節(jié)點重復(fù)的方法,具體地說是檢査檢驗樹形結(jié)構(gòu)節(jié)點重復(fù)性的一種快速簡潔的有效算法。本發(fā)明的目的是按以下方式實現(xiàn)的,具體算法如下1)建立一個結(jié)構(gòu)表T—Cycle,將需要校驗的X設(shè)置為初始;ParentChildLayerPathXX0X2)將X的子項(Child)根據(jù)父子關(guān)系和層次關(guān)系插入到T_Cycle中,并同時記錄下路徑Path;ParentChildLayerPathXX0XXA丄XAXB1XBXE1XE3)檢測Path中是否存在校驗的對象X,如果存在說明循環(huán)4)循環(huán)步驟2、3得到如下結(jié)果ParentChildLayerPathXX0XXAXAXB1XBXE1XEAC2XACAD2XADBR2X服C03XACODX3XADX本發(fā)明的有益效果是方法簡單實用、檢驗效率高,能說明節(jié)點重復(fù)的原因和路徑等特點。具體實施方式參照說明書附圖對本發(fā)明的作以下詳細地說明。本發(fā)明的檢驗樹形結(jié)構(gòu)節(jié)點重復(fù)的方法,具體算法如下1)建立一個結(jié)構(gòu)表T一Cycle,將需要校驗的X設(shè)置為初始;ParentChildLayerPathXX0X2)將X的子項(Child)根據(jù)父子關(guān)系和層次關(guān)系插入到T—Cycle中,并同時記錄下路徑PathParentChildLayerP3thXX0XXA1XAXBXBXE1XE3)檢測Path中是否存在校驗的對象X,如果存在說明循環(huán)4)循環(huán)步驟2、3得到如下結(jié)果<table>tableseeoriginaldocumentpage5</column></row><table>權(quán)利要求1.檢驗樹形結(jié)構(gòu)節(jié)點重復(fù)的方法,其特征在于具體算法如下1)建立一個結(jié)構(gòu)表T_Cycle,將需要校驗的X設(shè)置為初始;<table-cwuid="table1"><tablewidth="620"><tgroupcols="4"><thead></column></row><row><column><entrycolwidth="24%"morerows="1"morelines="1"><p>Parent</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Child</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Layer</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Path</p></entry></column></row></thead><tbody></column></row><row><column><entrycolwidth="24%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>0</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry></column></row></tbody></tgroup></column></row><table></table-cwu>2)將X的子項(Child)根據(jù)父子關(guān)系和層次關(guān)系插入到T_Cycle中,并同時記錄下路徑Path;<table-cwuid="table2"><tablewidth="621"><tgroupcols="4"><thead></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>Parent</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Child</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Layer</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Path</p></entry></column></row></thead><tbody></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>0</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>A</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>1</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XA</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>B</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>1</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XB</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>E</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>1</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XE</p></entry></column></row></tbody></tgroup></column></row><table></table-cwu>3)檢測Path中是否存在校驗的對象X,如果存在說明循環(huán);4)循環(huán)步驟2、3得到如下結(jié)果。<table-cwuid="table3"><tablewidth="621"><tgroupcols="4"><thead></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>Parent</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Child</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Layer</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>Path</p></entry></column></row></thead><tbody></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>0</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>A</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>1</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XA</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>B</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>1</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XB</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>E</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>1</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XE</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>A</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>C</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>2</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XAC</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>A</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>D</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>2</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XAD</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>B</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>R</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>2</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XBR</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>C</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>O</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>3</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XACO</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p>D</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>X</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>3</p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p>XADX</p></entry></column></row></column></row><row><column><entrycolwidth="25%"morerows="1"morelines="1"><p></p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p></p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p></p></entry><entrycolwidth="25%"morerows="1"morelines="1"><p></p></entry></column></row></tbody></tgroup></column></row><table></table-cwu>全文摘要本發(fā)明的目的是提供一種檢驗樹形結(jié)構(gòu)節(jié)點重復(fù)的方法,具體地說是檢查檢驗樹形結(jié)構(gòu)節(jié)點重復(fù)性的一種快速簡潔的有效算法。具體算法如下1)建立一個結(jié)構(gòu)表T_Cycle,將需要校驗的X設(shè)置為初始;2)將X的子項(Child)根據(jù)父子關(guān)系和層次關(guān)系插入到T_Cycle中,并同時記錄下路徑Path;3)檢測Path中是否存在校驗的對象X,如果存在說明循環(huán);4)循環(huán)步驟2、3得到結(jié)果。本發(fā)明的方法具有簡單實用、檢驗效率高,能說明節(jié)點重復(fù)的原因和路徑等特點。因而具有很好的推廣使用價值。文檔編號G06F17/30GK101162466SQ20071011416公開日2008年4月16日申請日期2007年11月16日優(yōu)先權(quán)日2007年11月16日發(fā)明者張國升申請人:浪潮集團山東通用軟件有限公司