專利名稱:一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法、裝置及查詢系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)結(jié)構(gòu)領(lǐng)域,尤其涉及一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法、裝置及查詢系統(tǒng)。
背景技術(shù):
樹狀結(jié)構(gòu)是指數(shù)據(jù)庫中一個數(shù)據(jù)集合以及在該集合上存在的一種關(guān)系。集合中的各個元素稱為樹的節(jié)點(diǎn),而集合上各個節(jié)點(diǎn)存在的關(guān)系稱為父子關(guān)系, 該父子關(guān)系在樹的節(jié)點(diǎn)之間建立了一個層次結(jié)構(gòu)。集合中通常包含多棵樹狀結(jié)構(gòu),集合中的一級節(jié)點(diǎn)對應(yīng)樹的根節(jié)點(diǎn),不同一級節(jié)點(diǎn)之間沒有直接的關(guān)系,只有一定的排列順序?,F(xiàn)有的構(gòu)建樹狀結(jié)構(gòu)排序的過程中,首先從每一個一級節(jié)點(diǎn)開始,采用遞歸查詢的方式遍歷其下所有層次的子節(jié)點(diǎn)記錄,再根據(jù)該子節(jié)點(diǎn)記錄將相應(yīng)的子節(jié)點(diǎn)排列在最終序列的正確位置上。如采用先序遍歷的方式遍歷一個一級節(jié)點(diǎn)所有層次的子節(jié)點(diǎn)記錄,由于該先序遍歷首先訪問根節(jié)點(diǎn)然后遍歷左子樹,最后遍歷右子樹,因此第一次數(shù)據(jù)庫查詢操作首先獲得根節(jié)點(diǎn)的記錄數(shù)據(jù),若該根節(jié)點(diǎn)的記錄數(shù)據(jù)表明該根節(jié)點(diǎn)存在左右兩個子節(jié)點(diǎn),再根據(jù)該根節(jié)點(diǎn)的記錄數(shù)據(jù)將該根節(jié)點(diǎn)的左節(jié)點(diǎn)排列在該一級節(jié)點(diǎn)的左邊,繼續(xù)執(zhí)行第二次數(shù)據(jù)庫查詢操作,若獲得的左節(jié)點(diǎn)記錄數(shù)據(jù)表明該左節(jié)點(diǎn)沒有子節(jié)點(diǎn),則將該根節(jié)點(diǎn)的右節(jié)點(diǎn)排列在該根節(jié)點(diǎn)的右邊。當(dāng)然,若根節(jié)點(diǎn)存在多個子節(jié)點(diǎn),則同樣需要多次數(shù)據(jù)庫查詢操作才能構(gòu)建樹。由于一次數(shù)據(jù)庫查詢只能取得樹的一個節(jié)點(diǎn)數(shù)據(jù),因此,使用該方法構(gòu)建一棵Q層樹狀結(jié)構(gòu)的排序需要執(zhí)行多次數(shù)據(jù)庫操作,多次數(shù)據(jù)遍歷才能將樹的所有節(jié)點(diǎn)排列在最終序列的正確位置上,影響了數(shù)據(jù)庫的性能,并且,隨著樹狀結(jié)構(gòu)層次Q數(shù)值的增長,多級葉子節(jié)點(diǎn)排序的時間開銷增大,不利于后期的樹層次數(shù)Q的擴(kuò)展。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法,旨在解決現(xiàn)有的構(gòu)建樹狀結(jié)構(gòu)的排序存在的影響數(shù)據(jù)庫性能以及難以擴(kuò)展的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法,所述方法包括下述步驟獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、所述節(jié)點(diǎn)的父節(jié)點(diǎn)、所述節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù);對組成樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,所述標(biāo)識用于唯一標(biāo)識所述組成樹的所有節(jié)占.根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序;保存所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識。本發(fā)明實施例的另一目的在于提供一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序裝置,所述裝置包括節(jié)點(diǎn)數(shù)據(jù)獲取單元,用于獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、所述節(jié)點(diǎn)的父節(jié)點(diǎn)、所述節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù);節(jié)點(diǎn)標(biāo)識單元,用于對組成樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,所述標(biāo)識用于唯一標(biāo)識所述組成樹的所有節(jié)點(diǎn);節(jié)點(diǎn)排序單元,用于根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序;節(jié)點(diǎn)數(shù)據(jù)保存單元,用于保存所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識。本發(fā)明實施例的另一目的在于提供一種包括上述樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序裝置的查詢系統(tǒng)。本發(fā)明實施例獲取樹的所有節(jié)點(diǎn)數(shù)據(jù),并對該樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,根據(jù)該所有節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序,再將排序后的節(jié)點(diǎn)數(shù)據(jù)以·及節(jié)點(diǎn)的唯一標(biāo)識保存在包括記錄節(jié)點(diǎn)數(shù)據(jù)的字段的列表中。遍歷一次該列表,就能夠獲取各個節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識,進(jìn)而根據(jù)獲取的節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識能夠正確構(gòu)建樹。由于只需一次列表數(shù)據(jù)遍歷操作,就能將所有節(jié)點(diǎn)排在正確的位置上,因此保證了數(shù)據(jù)庫性能的穩(wěn)定,并且,該方法在不增加開銷的情況下也能夠支持多級樹狀結(jié)構(gòu)的自由擴(kuò)展,增強(qiáng)實用性。
圖I是本發(fā)明第一實施例提供的樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法流程圖;圖2是本發(fā)明第一實施例提供的樹狀結(jié)構(gòu)圖;圖3是本發(fā)明第二實施例提供的樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法流程圖;圖4是本發(fā)明第三實施例提供的樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序裝置的結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例獲取樹的所有節(jié)點(diǎn)數(shù)據(jù),并對該樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,根據(jù)該節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序,再保存該節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識。本發(fā)明實施例提供了一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法、裝置及查詢系統(tǒng)。所述方法包括獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、所述節(jié)點(diǎn)的父節(jié)點(diǎn)、所述節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù);對組成樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,所述標(biāo)識用于唯一標(biāo)識所述組成樹的所有節(jié)占.根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序;保存所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識。所述裝置包括節(jié)點(diǎn)數(shù)據(jù)獲取單元,用于獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、所述節(jié)點(diǎn)的父節(jié)點(diǎn)、所述節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù);節(jié)點(diǎn)標(biāo)識單元,用于對組成樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,所述標(biāo)識用于唯一標(biāo)識所述組成樹的所有節(jié)點(diǎn);節(jié)點(diǎn)排序單元,用于根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序;節(jié)點(diǎn)數(shù)據(jù)保存單元,用于保存所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識。所述系統(tǒng)包括包括上述樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序裝置的查詢系統(tǒng)。本發(fā)明實施例獲取樹的所有節(jié)點(diǎn)數(shù)據(jù),并對該樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,根據(jù)該所有節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序,再將排序后的節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識保存在包括記錄節(jié)點(diǎn)數(shù)據(jù)的字段的列表中。遍歷一次該列表,就能夠獲取各個節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識,進(jìn)而根據(jù)獲取的節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識能夠正確構(gòu)建樹。由于只需一次列表數(shù)據(jù)遍歷操作,就能將所有節(jié)點(diǎn)排在正確的位置上, 因此保證了數(shù)據(jù)庫性能的穩(wěn)定,并且,該方法在不增加開銷的情況下也能夠支持多級樹狀結(jié)構(gòu)的自由擴(kuò)展,增強(qiáng)實用性。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進(jìn)行說明。實施例一:圖I示出了本發(fā)明第一實施例提供的樹狀結(jié)構(gòu)構(gòu)建方法流程,詳述如下在步驟Sll中,獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),該節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、該節(jié)點(diǎn)的父節(jié)點(diǎn)、該節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù)。獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),假設(shè)樹狀結(jié)構(gòu)有3層,如圖2所示。第一層的節(jié)點(diǎn)為一級節(jié)點(diǎn),有A節(jié)點(diǎn)、B節(jié)點(diǎn)和C節(jié)點(diǎn),第二層的節(jié)點(diǎn)為二級節(jié)點(diǎn),第二層的節(jié)點(diǎn)為Al節(jié)點(diǎn)、A2節(jié)點(diǎn)、BI節(jié)點(diǎn)以及B2節(jié)點(diǎn),第三層的節(jié)點(diǎn)為Al I節(jié)點(diǎn)、A12節(jié)點(diǎn)、A21節(jié)點(diǎn)、A22節(jié)點(diǎn),上述節(jié)點(diǎn)的創(chuàng)建時間依次靠后,A節(jié)點(diǎn)最早創(chuàng)建,而A22節(jié)點(diǎn)最遲創(chuàng)建。查詢并獲取組成樹中各個節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),如獲取節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、該節(jié)點(diǎn)的父節(jié)點(diǎn)、該節(jié)點(diǎn)的子節(jié)點(diǎn)以及該節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù)等節(jié)點(diǎn)數(shù)據(jù),在步驟S12中,對組成樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,該標(biāo)識用于唯一標(biāo)識組成樹的所有節(jié)點(diǎn)。在獲取了組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù)之后,再對該樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,該唯一標(biāo)識用于唯一標(biāo)識樹的節(jié)點(diǎn),一個節(jié)點(diǎn)的唯一標(biāo)識對應(yīng)于一個樹的節(jié)點(diǎn)。比如可以用節(jié)點(diǎn)的創(chuàng)建時間作為一個節(jié)點(diǎn)的唯一標(biāo)識。在步驟S13中,根據(jù)該節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序。其中,根據(jù)該節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序。的步驟具體為將一級節(jié)點(diǎn)根據(jù)該一級節(jié)點(diǎn)的唯一標(biāo)識排列在最終位置上;如,將一個一級節(jié)點(diǎn)根據(jù)該節(jié)點(diǎn)的唯一標(biāo)識排列在最終序列的第一個位置上;若還存在其他一級節(jié)點(diǎn),則將該一級節(jié)點(diǎn)根據(jù)該一級節(jié)點(diǎn)的唯一標(biāo)識排列在上一個一級節(jié)點(diǎn)所在位置后的第M+1個位置上,該M值等于上一個一級節(jié)點(diǎn)的子節(jié)點(diǎn)個數(shù),M大于等于O ;按照上述的排列方法依次將剩余的一級節(jié)點(diǎn)排列在最終序列的位置上。以步驟Sll中的樹節(jié)點(diǎn)為例,將該樹的一級節(jié)點(diǎn)按該一級節(jié)點(diǎn)所在樹的層數(shù)以及該一級節(jié)點(diǎn)的創(chuàng)建時間進(jìn)行排序的結(jié)果如表I所示表I :
權(quán)利要求
1.一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法,其特征在于,所述方法包括下述步驟 獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、所述節(jié)點(diǎn)的父節(jié)點(diǎn)、所述節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù); 對組成樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,所述標(biāo)識用于唯一標(biāo)識所述組成樹的所有節(jié)點(diǎn); 根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序; 保存所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識。
2.如權(quán)利要求I所述的方法,其特征在于,根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序的步驟具體為 將一級節(jié)點(diǎn)根據(jù)所述一級節(jié)點(diǎn)的唯一標(biāo)識排列在最終位置上; 將二級節(jié)點(diǎn)至N-I級節(jié)點(diǎn)根據(jù)所述二級節(jié)點(diǎn)的父節(jié)點(diǎn)以及所述二級節(jié)點(diǎn)的唯一標(biāo)識至所述N-I級節(jié)點(diǎn)的父節(jié)點(diǎn)以及所述N-I級節(jié)點(diǎn)的唯一標(biāo)識排列在最終位置上,所述N為樹狀結(jié)構(gòu)的總層數(shù); 將N級節(jié)點(diǎn)根據(jù)所述N級節(jié)點(diǎn)的父節(jié)點(diǎn)以及所述N級節(jié)點(diǎn)的唯一標(biāo)識排列在最終位置上。
3.如權(quán)利要求2所述的方法,其特征在于,所述將一級節(jié)點(diǎn)根據(jù)節(jié)點(diǎn)的唯一標(biāo)識排列在最終位置上的步驟具體為 將一個一級節(jié)點(diǎn)根據(jù)所述節(jié)點(diǎn)的唯一標(biāo)識排列在最終序列的第一個位置上; 若還存在其他一級節(jié)點(diǎn),則將所述一級節(jié)點(diǎn)根據(jù)所述一級節(jié)點(diǎn)的唯一標(biāo)識排列在上一個一級節(jié)點(diǎn)所在位置后的第M+1個位置上,所述M值等于上一個一級節(jié)點(diǎn)的子節(jié)點(diǎn)個數(shù),M大于等于O; 按照上述的排列方法依次將剩余的一級節(jié)點(diǎn)排列在最終序列的位置上。
4.如權(quán)利要求I所述的方法,其特征在于,在保存所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識的步驟之后進(jìn)一步包括下述步驟 查詢所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識; 根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識構(gòu)建樹。
5.如權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識構(gòu)建樹的步驟具體為 根據(jù)一級節(jié)點(diǎn)的唯一標(biāo)識構(gòu)建樹的第一層; 根據(jù)二級節(jié)點(diǎn)的唯一標(biāo)識以及所述二級節(jié)點(diǎn)的父節(jié)點(diǎn)構(gòu)建樹的第二層; 根據(jù)上述構(gòu)建樹的方法依次構(gòu)建樹的第三層至第N層,所述N為樹狀結(jié)構(gòu)的總層數(shù)。
6.一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序裝置,其特征在于,所述裝置包括 節(jié)點(diǎn)數(shù)據(jù)獲取單元,用于獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、所述節(jié)點(diǎn)的父節(jié)點(diǎn)、所述節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù); 節(jié)點(diǎn)標(biāo)識單元,用于對組成樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,所述標(biāo)識用于唯一標(biāo)識所述組成樹的所有節(jié)點(diǎn); 節(jié)點(diǎn)排序單元,用于根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序; 節(jié)點(diǎn)數(shù)據(jù)保存單元,用于保存所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識。
7.如權(quán)利要求6所述的裝置,其特征在于,所述節(jié)點(diǎn)排序單元包括一級節(jié)點(diǎn)排列模塊,用于將一級節(jié)點(diǎn)根據(jù)所述一級節(jié)點(diǎn)的唯一標(biāo)識排列在最終位置上; 中間節(jié)點(diǎn)排列模塊,用于將二級節(jié)點(diǎn)至N-I級節(jié)點(diǎn)根據(jù)所述二級節(jié)點(diǎn)的父節(jié)點(diǎn)以及所述二級節(jié)點(diǎn)的唯一標(biāo)識至所述N-I級節(jié)點(diǎn)的父節(jié)點(diǎn)以及所述N-I級節(jié)點(diǎn)的唯一標(biāo)識排列在最終位置上,所述N為樹狀結(jié)構(gòu)的總層數(shù); 葉子節(jié)點(diǎn)排列模塊,用于將N級節(jié)點(diǎn)根據(jù)所述N級節(jié)點(diǎn)的父節(jié)點(diǎn)以及所述N級節(jié)點(diǎn)的唯一標(biāo)識排列在最終位置上。
8.如權(quán)利要求7所述的裝置,其特征在于,所述一級節(jié)點(diǎn)排列模塊包括 第一一級節(jié)點(diǎn)排列模塊,用于將一個一級節(jié)點(diǎn)根據(jù)所述節(jié)點(diǎn)的唯一標(biāo)識排列在最終序列的第一個位置上; 中間一級節(jié)點(diǎn)排列模塊,用于在存在其他一級節(jié)點(diǎn)時,將所述一級節(jié)點(diǎn)根據(jù)所述一級節(jié)點(diǎn)的唯一標(biāo)識排列在上一個一級節(jié)點(diǎn)所在位置后的第M+1個位置上,所述M值等于上一個一級節(jié)點(diǎn)的子節(jié)點(diǎn)個數(shù),M大于等于O ; 剩余一級節(jié)點(diǎn)排列模塊,用于按照上述的排列方法依次將剩余的一級節(jié)點(diǎn)排列在最終序列的位置上。
9.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括 節(jié)點(diǎn)數(shù)據(jù)查詢單元,獲取所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識; 構(gòu)建樹單元,用于根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識構(gòu)建樹。
10.一種包括6-9任一項權(quán)利要求所述的樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序裝置的查詢系統(tǒng)。
全文摘要
本發(fā)明適用于數(shù)據(jù)結(jié)構(gòu)領(lǐng)域,提供了一種樹狀結(jié)構(gòu)節(jié)點(diǎn)的排序方法、裝置及查詢系統(tǒng)。所述方法包括步驟獲取組成樹的所有節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)據(jù),所述節(jié)點(diǎn)數(shù)據(jù)包括節(jié)點(diǎn)所在樹狀結(jié)構(gòu)的層數(shù)、所述節(jié)點(diǎn)的父節(jié)點(diǎn)、所述節(jié)點(diǎn)的子節(jié)點(diǎn)的個數(shù);對組成樹的所有節(jié)點(diǎn)進(jìn)行唯一標(biāo)識,所述標(biāo)識用于唯一標(biāo)識所述組成樹的所有節(jié)點(diǎn);根據(jù)所述節(jié)點(diǎn)數(shù)據(jù)以及節(jié)點(diǎn)的唯一標(biāo)識對樹的所有節(jié)點(diǎn)進(jìn)行排序;保存所述節(jié)點(diǎn)數(shù)據(jù)以及所述節(jié)點(diǎn)的唯一標(biāo)識。本發(fā)明實施例只需一次列表數(shù)據(jù)遍歷操作,就能將所有節(jié)點(diǎn)排在正確的位置上,因此保證了數(shù)據(jù)庫性能的穩(wěn)定,并且,該方法在不增加開銷的情況下也能夠支持多級樹狀結(jié)構(gòu)的自由擴(kuò)展,增強(qiáng)實用性。
文檔編號G06F17/30GK102841891SQ201110167198
公開日2012年12月26日 申請日期2011年6月21日 優(yōu)先權(quán)日2011年6月21日
發(fā)明者黃慶林 申請人:金蝶軟件(中國)有限公司