版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)樹的遍歷,文件目錄結(jié)構(gòu)的顯示PAGE 20PAGE 19數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)驗(yàn)樹的遍歷,文件目錄結(jié)構(gòu)的顯示實(shí)驗(yàn)報(bào)告一、簡(jiǎn)介樹型結(jié)構(gòu)是一類十分重要的非線性結(jié)構(gòu),它可以很好地描述客觀世界中廣泛存在的具有分支關(guān)系或?qū)哟翁匦缘膶?duì)象,如操作系統(tǒng)的文件構(gòu)成、人工智能搜索算法的模型表示以及數(shù)據(jù)庫(kù)系統(tǒng)的信息組織形式等。文件的目錄結(jié)構(gòu)是樹型結(jié)構(gòu)在計(jì)算機(jī)操作系統(tǒng)的典型應(yīng)用。通過樹型結(jié)構(gòu)可以直觀且清晰的表明操作系統(tǒng)中的文件組織結(jié)構(gòu)。用戶可通過樹型結(jié)構(gòu)顯示的文件目錄列表找到自己想訪問的內(nèi)容。本實(shí)驗(yàn)的要求在給出Unix下目錄和文件信息的前提下,編程實(shí)現(xiàn)將其排列成一棵具有一定縮進(jìn)的樹。具體要求如下:輸入要求
2、輸入數(shù)據(jù)包含幾個(gè)測(cè)試案例。每一個(gè)案例由幾行組成,每以行都代表了目錄樹的層次結(jié)構(gòu)。第一行代表目錄的根節(jié)點(diǎn)。若是目錄節(jié)點(diǎn),那么它的孩子節(jié)點(diǎn)將在第二行中被輸出,同時(shí)用一對(duì)圓括號(hào)“()”界定。同樣,如果這些孩子節(jié)點(diǎn)中某一個(gè)也是目錄的話,那么這個(gè)目錄所包含的內(nèi)容將在隨后的一行中列出,由一對(duì)圓括號(hào)將首尾界定。目錄的輸入格式為:*nams size,文件的輸入格式為:name size,其中*代表當(dāng)前節(jié)點(diǎn)是目錄,name代表文件或目錄的名稱,由一串長(zhǎng)度不大于10的字符組成,并且name字符串中不能含有(,),和*。size是該文件/目錄的大小,為一個(gè)大于0的整數(shù)。每一個(gè)案例中最多只能包含10層,每一層最多有
3、10個(gè)文件/目錄。輸出要求對(duì)每一個(gè)測(cè)試案例,輸出時(shí)要求:第d層的文件/目錄名前面需要插入8*d個(gè)空格,兄弟節(jié)點(diǎn)之間要在同一列上。不要使用Tab(制表符)來統(tǒng)一輸出的縮進(jìn)。每一個(gè)目錄的大?。╯ize)是它所包含的所有子目錄和文件大小以及它自身大小的總和。有輸入/輸出樣例如下:輸入樣例:*/usr 1(*mark 1 *alex 1)(hw.c 3 *course 1)(hw.c 5)(aa.txt 12)*/usr 1()輸出樣例:|_*/usr24 |_*mark17 | |_hw.c3 | |_*course13|_aa.txt12 |_*alex6 |_hw.c5|_*usr1因此,實(shí)驗(yàn)任
4、務(wù)如下:(1)讀入給定的Unix目錄和文件信息。(2)建立樹型鏈表以表示目錄和文件結(jié)構(gòu),同時(shí)重新計(jì)算目錄大?。?)以樹型結(jié)構(gòu)輸出文件信息。二、設(shè)計(jì)說明2.1、數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)目錄結(jié)構(gòu)是一種典型的樹形結(jié)構(gòu),可以選擇孩子兄弟雙親鏈表來儲(chǔ)存樹的結(jié)構(gòu)。孩子兄弟雙親鏈表是一種典型的樹的存儲(chǔ)結(jié)構(gòu)。在該表示方法中,鏈表中節(jié)點(diǎn)的三個(gè)指針域分別指向該節(jié)點(diǎn)的父親、第一個(gè)孩子節(jié)點(diǎn)和下一個(gè)兄弟節(jié)點(diǎn),分別命名為Parent域,F(xiàn)irstChild域和NextSibling域。在孩子兄弟雙親鏈表表示法中,節(jié)點(diǎn)形式統(tǒng)一,節(jié)點(diǎn)間的聯(lián)系比較簡(jiǎn)潔。同時(shí),在這種存儲(chǔ)結(jié)構(gòu)上容易實(shí)現(xiàn)樹數(shù)據(jù)結(jié)構(gòu)的大多數(shù)運(yùn)算。因此,孩子兄弟雙親鏈表表示是樹的
5、一種實(shí)用的儲(chǔ)存結(jié)構(gòu)。其節(jié)點(diǎn)形式如下:*FirstChilddata*NextSibling*Parent本題中采用面向?qū)ο蟮姆绞綄?shí)現(xiàn)樹型結(jié)構(gòu)。構(gòu)建Tree類,將所有的目錄作為Tree類的對(duì)象。Tree類定義如下:class Treestring Name; /樹的根節(jié)點(diǎn)名稱int Size;/樹的大小,用于統(tǒng)計(jì)樹本身及其子數(shù)大小的總和Tree* FirstChild;/指向他的第一個(gè)孩子節(jié)點(diǎn)Tree* NextSibling;/指向下一個(gè)兄弟節(jié)點(diǎn)Tree* Parent;/指向父節(jié)點(diǎn)public:Tree (string Name=”,int Size=0);/構(gòu)造函數(shù)void parse()
6、;/根據(jù)輸入數(shù)據(jù)建立樹型結(jié)構(gòu)void reSize();/重新統(tǒng)計(jì)樹節(jié)點(diǎn)的大小void outPut();/輸出函數(shù)Tree();/析構(gòu)函數(shù);2.2、主要函數(shù)的實(shí)現(xiàn)在Tree類中共定義了5個(gè)函數(shù),即構(gòu)造樹(Tree()構(gòu)造函數(shù)),銷毀樹(Tree()析構(gòu)函數(shù)),目錄大小計(jì)算(reSize()函數(shù)),建立樹型鏈表結(jié)構(gòu)(parse()函數(shù))和樹型結(jié)構(gòu)輸出(outPut()函數(shù))。下面分別說明如下:2.2.1構(gòu)造函數(shù)構(gòu)造函數(shù)的作用是建立一個(gè)只有一個(gè)節(jié)點(diǎn)的樹,其三個(gè)指針域均為空,以方便接下來目錄結(jié)構(gòu)的讀入和樹型鏈表的構(gòu)建。函數(shù)實(shí)現(xiàn)如下:Tree:Tree(string Name, int Size)t
7、his-Name = Name;this-Size = Size;FirstChild = NULL;/FirstChild域置空NextSibling = NULL;/NextSibling域置空parent = NULL;/Parent域置空2.2.2析構(gòu)函數(shù)析構(gòu)函數(shù)的作用是刪除同一個(gè)根節(jié)點(diǎn)下的各個(gè)子節(jié)點(diǎn),以釋放空間。函數(shù)實(shí)現(xiàn)如下:Tree:Tree()Tree* temp;Tree* temp1;temp = FirstChild;while(temp != NULL)temp1 = temp;temp = temp-NextSibling;delete temp1;2.2.3建立樹型鏈
8、表結(jié)構(gòu)(parse()函數(shù))根據(jù)輸入來確定樹型關(guān)系時(shí),首先讀取根節(jié)點(diǎn)目錄/文件名和大小值,并根據(jù)這些節(jié)點(diǎn)信息建立一個(gè)新的節(jié)點(diǎn);然后讀入后面各行的信息,對(duì)于同一括號(hào)中的內(nèi)容,即具有相同父節(jié)點(diǎn)(在同一目錄中的)接點(diǎn)建立兄弟關(guān)聯(lián)。這個(gè)函數(shù)實(shí)際上是采用層次遍歷建立樹型鏈表結(jié)構(gòu)。這里定義一個(gè)Tree*類型的數(shù)組treeArray,此數(shù)組存放目錄的節(jié)點(diǎn)信息。整形變量head和rear用來標(biāo)記當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)位置。每處理完一對(duì)括號(hào)(即同一目錄中的所有目錄/文件已被處理完),head值加1,下一對(duì)待處理括號(hào)的父節(jié)點(diǎn)在treeArray數(shù)組中應(yīng)當(dāng)后移一個(gè)位置。若當(dāng)前處理節(jié)點(diǎn)是目錄類型,則放置在treeArray
9、數(shù)組中,rear作為數(shù)組的下標(biāo)變量,加入一個(gè)目錄節(jié)點(diǎn)信息rear便加1。若是文件類型,則需按照Name和Size建立一個(gè)數(shù)的節(jié)點(diǎn),并和head所指的父節(jié)點(diǎn)建立關(guān)聯(lián)(即表明此文件所存儲(chǔ)的目錄),但不用放進(jìn)treeArray數(shù)組中。此函數(shù)可形成如下的數(shù)據(jù)結(jié)構(gòu):若有*/admin 1(*usr1 1 *usr2 1)(file1.c 3 *folder 1)(file2.c 5)則有下圖:usr2/adminusr2/adminusr1file1.cfolderfile2.cFirstChildFirstChildFirstChildParentParentParentParentNextSibli
10、ngNextSiblingtreeArray中存儲(chǔ)的為目錄列表。該函數(shù)實(shí)現(xiàn)如下:void Tree:parse()Tree* temp;string line;string name;int size;while(getline(infile,line,n)/讀入行startPos = 0;while(1)s = getSubDir(line, &startPos);/獲取一對(duì)()間字符串int i = 1;skipWhiteSpace(s, &i);/跳過字符串s中多余的空格if(si != )skipWhiteSpace(s,&i);name = getName(s,&i);/獲取目錄/文
11、件名稱skipWhiteSpace(s,&i);size = getSize(s,&i);/獲取目錄/文件大小temp = treeArrayhead%100-FirstChild = new Tree(name,size);/獲取第一個(gè)孩子節(jié)點(diǎn)temp-parent = treeArrayhead%100;if(name0 = *)treeArray(rear+)%100 = temp;/目錄則rear+1skipWhiteSpace(s,&i);while(si != )skipWhiteSpace(s,&i);name = getName(s,&i);skipWhiteSpace(s,&
12、i);size = getSize(s,&i);temp-NextSibling = new Tree(name,size); /獲取下一個(gè)兄弟節(jié)點(diǎn)skipWhiteSpace(s,&i);temp = temp-NextSibling;temp-parent = treeArrayhead%100;if(name0 = *)treeArray(rear+)%100 = temp; /目錄則rear+1head +;/一對(duì)()掃描完畢if(unsigned int)startPos = line.length()break;if(head = rear)/只有一個(gè)根節(jié)點(diǎn)時(shí),head=rearb
13、reak;2.2.4目錄大小計(jì)算(reSize()函數(shù))輸入數(shù)據(jù)中,目錄大小的初始化值一般為1,而目錄真正的大小為其自身大小與包含的所有子目錄/文件大小的和。因此在計(jì)算目錄大小時(shí),應(yīng)當(dāng)遍歷下面所有的文件和子目錄。在此采用遞歸的后根遍歷方法。此外需注意的是,在采用孩子兄弟雙親鏈表表示樹時(shí),父目錄下所有的子目錄和自文件都在其左子樹上,因此遍歷的時(shí)候只需遍歷其左子樹即可。例如有*/admin 1(*usr1 1 *usr2 1)*/admin2 1則樹型結(jié)構(gòu)如圖:/admin*usr1*usr2/admin2顯然其admin所有子目錄都在其左子樹上,其右子樹上為與之平級(jí)的目錄(兄弟節(jié)點(diǎn))。該函數(shù)實(shí)現(xiàn)
14、如圖:void Tree:reSize()Tree* temp = this;if(temp-FirstChild != 0)/后根遍歷左子樹temp = temp-FirstChild;while(temp != 0)temp-reSize();Size += temp-Size;temp = temp-NextSibling;2.2.5樹型結(jié)構(gòu)輸出(outPut()函數(shù))很顯然,輸出是對(duì)樹的先根遍歷過程。為了完成對(duì)于目錄的樹型輸出,兄弟目錄之間需要相同的縮進(jìn),用|上下相連,而父子目錄或父目錄和子文件間需要設(shè)置正確的縮進(jìn),子目錄或子文件比父目錄右縮進(jìn)8個(gè)空格。設(shè)置一個(gè)標(biāo)志數(shù)組flag11(題
15、目規(guī)定每個(gè)目錄下最大層次數(shù)為10),當(dāng)前Tree* temp指針?biāo)赶虻墓?jié)點(diǎn)如果有兄弟節(jié)點(diǎn),則置flag為1,否則為0;并由此節(jié)點(diǎn)反復(fù)查詢它的祖先節(jié)點(diǎn);遇到flag=0則輸出” “,flag=1則輸出”| “,表明是兄弟節(jié)點(diǎn)。這樣可以保證兄弟節(jié)點(diǎn)間有相同縮進(jìn),而子節(jié)點(diǎn)比父節(jié)點(diǎn)向右縮進(jìn)8個(gè)字符。該函數(shù)實(shí)現(xiàn)如下:void Tree:outPut()Tree* temp; /用來指向當(dāng)前結(jié)點(diǎn)的祖先結(jié)點(diǎn)Tree* temp1;bool flag11;int i;outfile.open(output.txt,ios:app);/結(jié)果保存至output.txt中if(!outfile)coutcanno
16、t append the output file.n;exit(0);if(!checkName(Name)coutinput error!-Nameendl;exit(0);outfile|_NameSizen;outfile.close();temp1= FirstChild; /用來指向當(dāng)前結(jié)點(diǎn)的子結(jié)點(diǎn)while(temp1 != NULL)outfile.open(output.txt,ios:app);if(!outfile)coutparent != NULL)if(i=10)coutinput error!-dictionary contains more than 10 lev
17、els.parent; if(temp-NextSibling != NULL)flagi+ = true;/即flag為1,兄弟節(jié)點(diǎn) elseflagi+ = false;/即flag為0,父節(jié)點(diǎn)while(i-)if(flagi = true)outfile| ;/兄弟節(jié)點(diǎn)輸出elseoutfileoutPut();temp1 = temp1-NextSibling;三、測(cè)試結(jié)果本試驗(yàn)提供了四組輸入樣例,其中一組為只有根節(jié)點(diǎn),以測(cè)試在極端情況下算法的穩(wěn)定性,一組為有兩個(gè)目錄,每個(gè)目錄下有不超過5個(gè)目錄/文件,測(cè)試算法在一般情況下的運(yùn)行情況,一組為有3個(gè)目錄,其中部分目錄名為長(zhǎng)度為10的整數(shù)
18、,部分目錄下嵌套10層子目錄/文件,以測(cè)試在樣本容量較大情況下的算法穩(wěn)定性,最后一組為錯(cuò)誤的數(shù)據(jù),以測(cè)試程序的健壯性。測(cè)試結(jié)果如下:輸入樣例1:*/usr 1()輸出樣例1:The result is as follows:|_*/usr1輸入樣例2:*/admin1 1(*user1 1 *user2 1)(file1.c 3 *folder1 1) (file2.c 5)(file3.exe 12)*/admin2 1(*user3 1 *user4 1 *user5 1)(file4.c 5 *folder2 1 file6.c 7 20) (file8.c 9 *folder3 1)
19、(file9.avi 100 file10.rmvb 200)(file11.exe 10 file12.rm 20) (file13.jpg 10 file14.xls 10)輸出樣例2:The result is as follows:|_*/admin124 |_*user117 | |_file1.c3 | |_*folder113 | |_file3.exe12 |_*user26 |_file2.c5|_*/admin2397 |_*user364 | |_file4.c5 | |_*folder231 | | |_file11.exe10 | | |_file12.rm20 |
20、|_file6.c7 | |_20 |_*user431 | |_file8.c9 | |_*folder321 | |_file13.jpg10 | |_file14.xls10 |_*user5301 |_file9.avi100輸入樣例3:*/admin1 1(*user1 1 *user2 1)(file1.c 3 *folder1 1) (file2.c 5)(file3.exe 12)*/admin2 1(*mark 1 *alex 1 *bill 1)(*book 1 *course 1 junk.c 6) (junk.c 8) (*work 1 *course 1)(ch1.r
21、 3 ch2.r 2 ch3.r 4) (*cop3530 1) () (*cop3212 1)(*fall96 1 *spr97 1 *sum97 1) (*fall96 1 *fall97 1)(syl.r 1 *sc 1) (syl.r 5) (syl.r 2) (grades 3 prog1.r 4 prog2.r 1) (prog2.r 2 prog1.r 7 grades 9)(*sc2 1)(*sc3 1)(*sc4 1 p.c 10)()*/admin3 1(*user3 1 *user4 1 *user5 1)(file4.c 5 *folder2 1 file6.c 7 2
22、0) (file8.c 9 *folder3 1) (file9.avi 100 file10.rmvb 200)(file11.exe 10 file12.rm 20) (file13.jpg 10 file14.xls 10)輸出樣例3:The result is as follows:|_*/admin124 |_*user117 | |_file1.c3 | |_*folder113 | |_file3.exe12 |_*user26 |_file2.c5|_*/admin286 |_*mark44 | |_*book10 | | |_ch1.r3 | | |_ch2.r2 | | |
23、_ch3.r4 | |_*course27 | | |_*cop353026 | | |_*fall9616 | | | |_syl.r1 | | | |_*sc14 | | | |_*sc213 | | | |_*sc312 | | | |_*sc41 | | | |_p.c10 | | |_*spr976 | | | |_syl.r5 | | |_*sum973 | | |_syl.r2 | |_junk.c6 |_*alex9 | |_junk.c8 |_*bill32 |_*work1 |_*course30 |_*cop321229 |_*fall969 | |_grades3 |
24、|_prog1.r4 | |_prog2.r1 |_*fall9719 |_prog2.r2 |_prog1.r7 |_grades9|_*/admin3397 |_*user364 | |_file4.c5 | |_*folder231 | | |_file11.exe10 | | |_file12.rm20 | |_file6.c7 | |_20 |_*user431 | |_file8.c9 | |_*folder321 | |_file13.jpg10 | |_file14.xls10 |_*user5301 |_file9.avi100 輸入樣例4:*/usr000000000000
25、00 1()*a 1(aa.txt 1 *b 1)(*c 1)(*d 1)(*e 1)(*f 1)(*g 1)(*h 1)(*i 1)(*j 1)(*k 1)(a.txt 10)*/usr 1(*mark 1 *alex 1)(hw.c 3 *course 1) (hw.c 5)(aa.txt 12)輸出樣例4:The result is as follows:(程序運(yùn)行不報(bào)錯(cuò)但無(wú)輸出,符合設(shè)計(jì)要求)測(cè)試結(jié)果表明,程序基本符合設(shè)計(jì)要求,可以實(shí)現(xiàn)將提供的Unix下目錄和文件信息用樹形結(jié)構(gòu)表示出來。四、分析與探討本程序應(yīng)用了面向?qū)ο蟮脑O(shè)計(jì)思想,將每個(gè)目錄作為Tree類的對(duì)象加以實(shí)現(xiàn),使所有對(duì)于目錄
26、的操作具有較好的通用性和可移植性。同時(shí),對(duì)于反復(fù)使用的checkName()、skipWhiteSpace()、getSubDir()等函數(shù),程序?qū)⑵鋯为?dú)聲明以便于在各個(gè)函數(shù)中調(diào)用執(zhí)行。最大限度的減少了編程工作量,符合模塊化、結(jié)構(gòu)化的程序設(shè)計(jì)思想。在寫作過程中對(duì)相應(yīng)語(yǔ)句標(biāo)明了語(yǔ)句注釋,方便閱讀。此外,在程序中大量應(yīng)用了樹數(shù)據(jù)結(jié)構(gòu)的基本操作,如函數(shù)parse()中用到了樹的層序遍歷:while(si != )skipWhiteSpace(s,&i);name = getName(s,&i);skipWhiteSpace(s,&i);size = getSize(s,&i);temp-NextSi
27、bling = new Tree(name,size);skipWhiteSpace(s,&i);temp = temp-NextSibling;temp-parent = treeArrayhead%100;if(name0 = *)treeArray(rear+)%100 = temp;在函數(shù)reSize()中應(yīng)用到了遞歸的后序遍歷:while(temp != 0)temp-reSize();Size += temp-Size;temp = temp-NextSibling;在函數(shù)outPut()中應(yīng)用到了樹的先序遍歷:while(temp-parent != NULL)if(i=10)c
28、outinput error!-dictionary contains more than 10 levels.parent; if(temp-NextSibling != NULL)flagi+ = true; elseflagi+ = false;這樣可以在樹數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)基礎(chǔ)算法的基礎(chǔ)上稍加改進(jìn)即可實(shí)現(xiàn)實(shí)驗(yàn)所需求的功能。很顯然,程序仍有許多不完善的地方。例如程序只可識(shí)別10層嵌套的目錄/文件,對(duì)于超過十層的目錄/文件程序便無(wú)法識(shí)別。此外,對(duì)于文件名超過10的文件處理不夠完善,會(huì)出現(xiàn)下列的錯(cuò)誤:輸入:*/usr 1(*admin 1 *s1 1)(hw6232423.exe 3 *cours
29、e 1) (hw.c 5)(aa.txt 12)輸出:The result is as follows:|_*/usr24 |_*admin17 | 即程序在執(zhí)行到讀取串”hw6232423.exe”時(shí)自動(dòng)終止,無(wú)法輸出正確的目錄/文件結(jié)構(gòu)。此外,對(duì)于可能出現(xiàn)的輸入錯(cuò)誤,程序并未有告警。雖不會(huì)導(dǎo)致程序崩潰,但是與用戶的交互性不強(qiáng)。本程序在Dev C+ 版本和Visual C+ 6.0版本上調(diào)試通過。附錄 源代碼Tree.cpp#include #include #include using namespace std;string s = ;int startPos = 0;ofstream
30、outfile;ifstream infile;class Treestring Name; /樹的根結(jié)點(diǎn)名稱 int Size; /樹的大小,用于統(tǒng)計(jì)這棵樹本身及其包含的所以子樹大小的總和Tree* FirstChild; /指向它的第一個(gè)孩子結(jié)點(diǎn) Tree* NextSibling; /指向它的下一個(gè)兄弟結(jié)點(diǎn)Tree* parent; /指向雙親結(jié)點(diǎn)public:Tree(string Name = , int Size = 0); /構(gòu)造函數(shù)void parse(); /根據(jù)輸入數(shù)據(jù)來建立樹形結(jié)構(gòu)void reSize(); /重新統(tǒng)計(jì)樹結(jié)點(diǎn)的大小void outPut(); /輸出樹形
31、結(jié)構(gòu)Tree(); /析構(gòu)函數(shù);Tree* treeArray100;int head = 0, rear = 0;Tree:Tree(string Name, int Size)this-Name = Name;this-Size = Size;FirstChild = NULL;NextSibling = NULL;parent = NULL;Tree:Tree()Tree* temp;Tree* temp1;temp = FirstChild;while(temp != NULL)temp1 = temp;temp = temp-NextSibling;delete temp1;void
32、 Tree:reSize()Tree* temp = this;if(temp-FirstChild != 0)temp = temp-FirstChild;while(temp != 0)temp-reSize();Size += temp-Size;temp = temp-NextSibling;bool checkName(string s)if(s0!=* & s.length() 10)return false;if(s0=* & s.length() 11)return false;if(s0!=* & (s0=( | s0=) | s0= | s0=)return false;f
33、or(int i=1;is.length();i+)if(si=* | si=( | si=) | si= | si=)return false;return true;void Tree:outPut()Tree* temp; /用來指向當(dāng)前結(jié)點(diǎn)的祖先結(jié)點(diǎn)Tree* temp1;bool flag11; /用來標(biāo)志輸出縮進(jìn)、層次情況的數(shù)組int i;outfile.open(output.txt,ios:app);if(!outfile)coutcannot append the output file.n;exit(0);if(!checkName(Name)coutinput error
34、!-Nameendl;exit(0);outfile|_NameSizen;outfile.close();temp1= FirstChild; /用來指向當(dāng)前結(jié)點(diǎn)的子結(jié)點(diǎn)while(temp1 != NULL)outfile.open(output.txt,ios:app);if(!outfile)coutparent != NULL)if(i=10)coutinput error!-dictionary contains more than 10 levels.parent; if(temp-NextSibling != NULL)flagi+ = true; elseflagi+ = false;while(i-)if(flagi = true)outfile| ;elseoutfileoutPut();temp1 = temp1-NextSibling;void skipWhiteSpace(string& s, int* i)while(s*i = t | s*i = )(*i)+;string getSubDir(string& line, int* startPos)string res = ;skipWhiteSpace(line,startPos);
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- A證(企業(yè)負(fù)責(zé)人)-安全員A證(企業(yè)負(fù)責(zé)人考前練習(xí))
- 廣東省中山市2024年九年級(jí)中考三模數(shù)學(xué)試卷附答案
- 電力系統(tǒng)節(jié)能減排實(shí)施方案
- 高一化學(xué)二第三章第一節(jié)最簡(jiǎn)單的有機(jī)化合物-甲烷教學(xué)設(shè)計(jì)
- 2024高中地理第3章地理信息技術(shù)應(yīng)用第3節(jié)全球定位系統(tǒng)及其應(yīng)用學(xué)案湘教版必修3
- 2024高中語(yǔ)文第一單元以意逆志知人論世蜀相訓(xùn)練含解析新人教版選修中國(guó)古代詩(shī)歌散文欣賞
- 2024高中語(yǔ)文第四單元?jiǎng)?chuàng)造形象詩(shī)文有別第21課自主賞析項(xiàng)羽之死課時(shí)作業(yè)含解析新人教版選修中國(guó)古代詩(shī)歌散文欣賞
- 2024高考化學(xué)一輪復(fù)習(xí)專練5化學(xué)與STSE含解析新人教版
- 2024高考化學(xué)一輪復(fù)習(xí)第一部分考點(diǎn)41烴的含氧衍生物強(qiáng)化訓(xùn)練含解析
- 2024高考化學(xué)一輪復(fù)習(xí)課練3物質(zhì)的組成性質(zhì)分類和化學(xué)用語(yǔ)含解析
- 嘔血護(hù)理查房
- 2024年新青島版(六三制)三年級(jí)下冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)
- 朝韓關(guān)系相關(guān)分析
- 校園熱水方案
- 跟蹤服務(wù)項(xiàng)目活動(dòng)實(shí)施方案
- 新能源汽車產(chǎn)業(yè)鏈中的區(qū)域發(fā)展不均衡分析與對(duì)策
- 財(cái)務(wù)機(jī)器人技術(shù)在會(huì)計(jì)工作中的應(yīng)用
- 建筑保溫隔熱構(gòu)造
- 智慧財(cái)務(wù)綜合實(shí)訓(xùn)
- 安徽省合肥市2021-2022學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)3
- 教育專家報(bào)告合集:年度得到:沈祖蕓全球教育報(bào)告(2023-2024)
評(píng)論
0/150
提交評(píng)論