• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 200, comments - 8, trackbacks - 0, articles - 0

            圖的一個題

            Posted on 2013-05-26 10:40 鑫龍 閱讀(260) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)與算法
            題目:一個單入口單出口的有向無環(huán)圖中,要求在某些地方插入一些節(jié)點(diǎn)使得任何一條由起點(diǎn)到終點(diǎn)所經(jīng)歷的節(jié)點(diǎn)數(shù)相同,類似于下面的圖,要求給出算法描述并分析時間復(fù)雜度。

            如上圖所示,節(jié)點(diǎn)A到C有兩條路徑,ABC這條路徑經(jīng)過了一個節(jié)點(diǎn),而AC路徑經(jīng)過了0個節(jié)點(diǎn),我們的算法所要做的事就是要在AC路徑中間加入一個節(jié)點(diǎn),然后ABC路徑和ADC路徑都經(jīng)過了一個節(jié)點(diǎn)。

            算法是這樣的:對于每個節(jié)點(diǎn)維護(hù)一組信息,包括節(jié)點(diǎn)的層數(shù)(起始節(jié)點(diǎn)到該節(jié)點(diǎn)的路徑長度,起始節(jié)點(diǎn)設(shè)為0)以及生成該長度的父節(jié)點(diǎn),相對于右圖,節(jié)點(diǎn)6維護(hù)的不經(jīng)處理的信息就是:層數(shù)2來自節(jié)點(diǎn)3和節(jié)點(diǎn)4;節(jié)點(diǎn)7維護(hù)的不經(jīng)處理的信息就是:層數(shù)3來自節(jié)點(diǎn)5和節(jié)點(diǎn)6以及層數(shù)2來自節(jié)點(diǎn)4;節(jié)點(diǎn)8的不經(jīng)處理的信息是:層數(shù)4來自節(jié)點(diǎn)7,層數(shù)3來自節(jié)點(diǎn)7,層數(shù)2來自節(jié)點(diǎn)4。我們算法所要做的事就是最終使每個節(jié)點(diǎn)需要維護(hù)的層信息變?yōu)橐粋€,即無論從那條路徑到該節(jié)點(diǎn),該節(jié)點(diǎn)所處的層數(shù)都是固定的。算法如下:
            1、初始化起始節(jié)點(diǎn)的層數(shù)信息
            2、從起始節(jié)點(diǎn)開始遍歷每條路徑,遇到每個節(jié)點(diǎn)生成一個維護(hù)信息
            (1)如果此節(jié)點(diǎn)不存在維護(hù)信息,創(chuàng)建之;
            (2)如果該節(jié)點(diǎn)存在維護(hù)信息,有兩種情況:
            (a)如果生成的維護(hù)信息的層數(shù)和原來已有的維護(hù)信息的層數(shù)是相同的,則合并這兩個維護(hù)信息,比如對于例子中的圖,節(jié)點(diǎn)5原來的維護(hù)信息為“層數(shù)3來自節(jié)點(diǎn)2”,然后從節(jié)點(diǎn)3到節(jié)點(diǎn)5生成的維護(hù)信息為“層數(shù)3來自節(jié)點(diǎn)3”,由于層數(shù)相同,我們可以將其合并為“層數(shù)3來自節(jié)點(diǎn)2和節(jié)點(diǎn)3”;
            (b)如果生成的維護(hù)信息的層數(shù)和原來節(jié)點(diǎn)的維護(hù)信息的層數(shù)不一致,我們需要比較那一個的層數(shù)較大:
            a.如果原來維護(hù)信息的層數(shù)較大,此時,我們只需要在生成此維護(hù)信息的節(jié)點(diǎn)與此節(jié)點(diǎn)之間插入一個新的節(jié)點(diǎn),然后生成新節(jié)點(diǎn)的維護(hù)信息,然后從新節(jié)點(diǎn)開始(2)過程
            b.如果新生成的維護(hù)信息的層數(shù)較大,將新生成的節(jié)點(diǎn)信息存入此節(jié)點(diǎn),然后我們需要在生成原來維護(hù)信息的所有節(jié)點(diǎn)和此節(jié)點(diǎn)之間插入新節(jié)點(diǎn),并且需要從所有的新插入節(jié)點(diǎn)開始(2)過程



            精品久久久久久国产免费了| 久久国产亚洲精品| 久久婷婷五月综合97色一本一本| 午夜精品久久久久久99热| 国产精品久久久久无码av| 久久久久久久亚洲精品| 久久久噜噜噜久久中文福利| 久久久久久久国产免费看| 思思久久99热只有频精品66| 婷婷综合久久中文字幕蜜桃三电影| 亚洲av日韩精品久久久久久a| 国产美女久久久| 久久精品人人槡人妻人人玩AV| 99久久精品免费| 九九99精品久久久久久| 无码人妻久久一区二区三区蜜桃| 久久91精品国产91久久户| 久久久这里有精品中文字幕| 91久久精品无码一区二区毛片| 久久亚洲精品国产亚洲老地址| 精品蜜臀久久久久99网站| 久久香蕉超碰97国产精品| 久久精品99无色码中文字幕| 精品久久久噜噜噜久久久| 中文字幕无码久久人妻| 亚洲国产天堂久久久久久| 久久91亚洲人成电影网站| 亚洲av日韩精品久久久久久a| 久久精品一区二区三区中文字幕 | 久久免费高清视频| 久久99精品国产麻豆| 久久婷婷五月综合国产尤物app| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 国产人久久人人人人爽| 久久久久波多野结衣高潮| 久久综合给合综合久久| 国产亚洲精午夜久久久久久| 66精品综合久久久久久久| 久久精品九九亚洲精品天堂| 久久99国产精品一区二区| 2021精品国产综合久久|