亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        數(shù)據(jù)結(jié)構(gòu)中樹的遍歷課程設計與實現(xiàn)

        2017-02-01 10:51:24田曉輝
        文化創(chuàng)新比較研究 2017年12期
        關(guān)鍵詞:結(jié)構(gòu)信息

        田曉輝

        (渭南師范學院網(wǎng)絡安全與信息化學院, 陜西渭南 714099)

        1 樹形結(jié)構(gòu)

        1.1 樹的定義[1]

        一棵有根樹T,簡稱為樹,可定義為n(n≥0)個結(jié)點的有限集合。當n=0時,T稱為空樹;否則,T是非空樹,記作:

        1.2 樹的存儲結(jié)構(gòu)

        樹的主要存儲結(jié)構(gòu)有以下三種[2]:

        [1]雙親表示法:

        用一組連續(xù)的空間來存儲樹中的結(jié)點,在保存每個結(jié)點的同時附設一個指示器來指示其雙親結(jié)點在表中的位置。

        [2]孩子表示法

        把每個結(jié)點的孩子結(jié)點排列起來,構(gòu)成一個單鏈表,稱為孩子鏈表。n個結(jié)點共有n 個孩子鏈表(葉子結(jié)點的孩子鏈表為空表),而 n 個結(jié)點的數(shù)據(jù)和 n個孩子鏈表的頭指針又組成一個順序表。

        [3]孩子兄弟表示法

        這種表示法又稱為樹的二叉表示法,或者二叉鏈表表示法,即以二叉鏈表作為樹的存儲結(jié)構(gòu)。鏈表中每個結(jié)點設有兩個鏈域,分別指向該結(jié)點的第一個孩子結(jié)點和下一個兄弟(右兄弟)結(jié)點。

        2 課程設計

        2.1 問題描述

        給出某操作系統(tǒng)的目錄和文件信息,編程將其以樹狀結(jié)構(gòu)顯示。輸入的信息有兩種,第一種為目錄信息。目錄下面可以存放文件或子目錄,即目錄結(jié)點可能存在孩子結(jié)點,若存在,其孩子結(jié)點信息要求在該目錄信息的下一行給出,孩子結(jié)點信息要求用圓括號“()”括起。目錄的輸入格式為:[目錄名稱]大小。第二種是文件信息。輸入格式為:文件名稱 大小。目錄名或文件名為長度小于等于10的字符串,且目錄名或文件名不能包含‘(’,‘)’和‘*’。目錄的“大小”都表示為 1,文件的“大小”輸入值為文件的實際大小。

        編程實現(xiàn)如下輸出,要求是有層次結(jié)構(gòu)的樹,每層結(jié)點(目錄結(jié)點或文件結(jié)點)都要比上一層結(jié)點多縮進多個空格。同層目錄或文件結(jié)點在同一列顯示。計算所有目錄的大小(為其子目錄大小+子文件大小+1),并在目錄名和文件后面顯示各自大小。

        2.2 算法思想

        本文對目錄樹采用孩子兄弟鏈表法結(jié)合雙親法的存儲結(jié)構(gòu),根據(jù)輸入的目錄和文件信息,先創(chuàng)建樹,再把孩子兄弟存儲結(jié)構(gòu)的樹以顯式的樹狀結(jié)構(gòu)輸出,每個結(jié)點要按其所在層次作相應的縮進。其中,創(chuàng)建樹采用層序遍歷算法實現(xiàn),輸出樹采用先序遍歷算法實現(xiàn)。若某結(jié)點的第一個孩子結(jié)點有右孩子結(jié)點(兄弟結(jié)點),則需要按其所在層次進行縮進后輸出連接符|和多個空格;否則只輸出多個空格;計算某目錄的大小時,為該目錄結(jié)點的左子樹(以其第一個孩子為根的樹)所有結(jié)點的“大小”的和再加該目錄的“大小”。

        3 實現(xiàn)

        3.1 樹的存儲結(jié)構(gòu)

        在輸出樹結(jié)構(gòu)時,由于先輸出的是同一層結(jié)點的第一個結(jié)點及其對應的子樹,再輸出同一層結(jié)點的第二個結(jié)點及其對應的子樹,所以,使用孩子兄弟鏈表存儲結(jié)構(gòu)時,用先序遍歷算法遍歷該結(jié)構(gòu),剛好可以實現(xiàn)上面的輸出順序的要求;其次,由于每一個目錄結(jié)點(雙親結(jié)點)下面可能存在子目錄或文件結(jié)點(孩子結(jié)點),在縮進處理上,輸出子目錄或文件結(jié)點信息時,要比其雙親的目錄結(jié)點信息縮進更多,為了便于處理縮進,在孩子兄弟存儲結(jié)構(gòu)中增加了parent 域,得到了改進后的孩子兄弟存儲結(jié)構(gòu)[3]。

        3.2 關(guān)鍵算法的設計

        (1)創(chuàng)建樹的改進孩子兄弟存儲結(jié)構(gòu):

        首先讀入根目錄名稱和大小,創(chuàng)建根結(jié)點,將根結(jié)點的三個指針域置空;

        讀入下一行目錄或文件信息并創(chuàng)建結(jié)點。創(chuàng)建新結(jié)點,該結(jié)點是根結(jié)點的第一孩子結(jié)點,建立其和根結(jié)點的鏈接。然后循環(huán)做如下的操作:若本行后面還有文件或目錄信息,建立新結(jié)點,建立其和雙親結(jié)點的鏈接,建立其和前一兄弟結(jié)點的鏈接。將該結(jié)點的“大小”值加到根結(jié)點的“大小”中去。重復該過程,直到本行信息讀取結(jié)束。

        重復上面的過程,直到整體輸入結(jié)束。

        (2)輸出樹:

        設當前指針(位置)為根目錄,先輸出根結(jié)點;

        將當前指針改為根結(jié)點的第一孩子結(jié)點

        循環(huán)做如下操作:

        輸出當前指針對應的結(jié)點及其子樹;

        將當前指針移向當前指針的下一兄弟結(jié)點;

        直至當前指針為空。

        4 測試

        運行程序時,輸入異常的測試數(shù)據(jù)時,提示“Input Error!”。輸入正確的測試數(shù)據(jù):

        得到如下圖1所示結(jié)果。

        圖1 樹型結(jié)構(gòu)

        [1]殷人昆.數(shù)據(jù)結(jié)構(gòu)C語言描述[M].北京:機械工業(yè)出版社,2011.6:108-109

        [2]耿國華.數(shù)據(jù)結(jié)構(gòu)(用 C語言描述)[M].北京:高等教育出版社.2016:181-183

        [3]何欽銘,陳根才.數(shù)據(jù)結(jié)構(gòu)課程設計[M].杭州:浙江大學出版社,2015.8:24-41

        猜你喜歡
        結(jié)構(gòu)信息
        《形而上學》△卷的結(jié)構(gòu)和位置
        哲學評論(2021年2期)2021-08-22 01:53:34
        論結(jié)構(gòu)
        中華詩詞(2019年7期)2019-11-25 01:43:04
        新型平衡塊結(jié)構(gòu)的應用
        模具制造(2019年3期)2019-06-06 02:10:54
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        論《日出》的結(jié)構(gòu)
        創(chuàng)新治理結(jié)構(gòu)促進中小企業(yè)持續(xù)成長
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        基于BIM的結(jié)構(gòu)出圖
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        亚洲一区二区三区四区精品在线| 国产精品成人午夜久久| 国产精品女丝袜白丝袜 | 久久精品国产9久久综合| 每日更新在线观看av| 国产成人久久精品激情| 巨爆乳中文字幕爆乳区| 麻豆视频在线观看免费在线观看| 一二三区无线乱码中文在线| 又大又粗又爽18禁免费看 | 蜜桃无码一区二区三区| 一级片麻豆| av免费在线观看在线观看| 精品人妻一区二区三区久久| 国产精品无圣光一区二区| 免费看国产成年无码av| 亚洲天堂一区二区三区视频| 国产精品久久久久久久久电影网| 亚洲av永久无码精品国产精品| 国产在线欧美日韩一区二区| 国产午夜三级精品久久久| 深夜放纵内射少妇| 婷婷成人基地| 毛片一级精油按摩无码| 日韩午夜免费视频精品一区| 精品丰满人妻无套内射| 热久久这里只有| h视频在线观看视频在线| 性无码一区二区三区在线观看| 午夜福利视频合集1000| 日本视频精品一区二区| 亚洲婷婷久悠悠色悠在线播放| 国产香蕉国产精品偷在线 | 亚洲无码观看a| 国产熟人精品一区二区| 中文无码久久精品| 91超碰在线观看免费| 干出白浆视频在线观看| 妺妺窝人体色www聚色窝| 四虎成人精品无码永久在线| 一区二区三区日韩毛片|