日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1777:文件结构“图”

發(fā)布時間:2023/12/9 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1777:文件结构“图” 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1777:文件結構“圖”

  • 查看
  • 提交
  • 統(tǒng)計
  • 提問
總時間限制:?
1000ms
內(nèi)存限制:?
65536kB
描述

在計算機上看到文件系統(tǒng)的結構通常很有用。Microsoft Windows上面的"explorer"程序就是這樣的一個例子。但是在有圖形界面之前,沒有圖形化的表示方法的,那時候最好的方式是把目錄和文件的結構顯示成一個"圖"的樣子,而且使用縮排的形式來表示目錄的結構。比如:

ROOT
| dir1
| file1
| file2
| file3
| dir2
| dir3
| file1
file1
file2

這個圖說明:ROOT目錄包括三個子目錄和兩個文件。第一個子目錄包含3個文件,第二個子目錄是空的,第三個子目錄包含一個文件。

輸入
你的任務是寫一個程序讀取一些測試數(shù)據(jù)。每組測試數(shù)據(jù)表示一個計算機的文件結構。每組測試數(shù)據(jù)以'*'結尾,而所有合理的輸入數(shù)據(jù)以'#'結尾。一組測試數(shù)據(jù)包括一些文件和目錄的名字(雖然在輸入中我們沒有給出,但是我們總假設ROOT目錄是最外層的目錄)。在輸入中,以']'表示一個目錄的內(nèi)容的結束。目錄名字的第一個字母是'd',文件名字的第一個字母是'f'。文件名可能有擴展名也可能沒有(比如fmyfile.dat和fmyfile)。文件和目錄的名字中都不包括空格,長度都不超過30。一個目錄下的子目錄個數(shù)和文件個數(shù)之和不超過30。
輸出
在顯示一個目錄中內(nèi)容的時候,先顯示其中的子目錄(如果有的話),然后再顯示文件(如果有的話)。文件要求按照名字的字母表的順序顯示(目錄不用按照名字的字母表順序顯示,只需要按照目錄出現(xiàn)的先后顯示)。對每一組測試數(shù)據(jù),我們要先輸出"DATA SET x:",這里x是測試數(shù)據(jù)的編號(從1開始)。在兩組測試數(shù)據(jù)之間要輸出一個空行來隔開。

你需要注意的是,我們使用一個'|'和5個空格來表示出縮排的層次。
樣例輸入
file1 file2 dir3 dir2 file1 file2 ] ] file4 dir1 ] file3 * file2 file1 * #
樣例輸出
DATA SET 1: ROOT | dir3 | | dir2 | | file1 | | file2 | dir1 file1 file2 file3 file4DATA SET 2: ROOT file1 file2
提示
一個目錄和它的子目錄處于不同的層次
一個目錄和它的里面的文件處于同一層次
來源
翻譯自 Pacific Northwest 1998 的試題

?

1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 using namespace std; 5 string a; 6 int cc;//輸出深度 7 int now=1;//記錄當前*數(shù)量 8 int flag=0; 9 void work() 10 { 11 string str[50];//儲存該目錄下的文件 12 int l=0; 13 while(cin>>a) 14 { 15 if(flag==0&&a[0]!='#') 16 { 17 cout<<"DATA SET "<<now<<":"<<endl; 18 cout<<"ROOT"<<endl; 19 flag=1; 20 } 21 if(a[0]=='#') 22 return; 23 else if(a[0]=='*') 24 { 25 cc=0; 26 sort(str+0,str+l); 27 for(int i=0;i<l;i++) 28 { 29 cout<<str[i]<<endl; 30 } 31 cout<<endl; 32 now++; 33 //cout<<"DATA SET "<<now<<":"<<endl; 34 //cout<<"ROOT"<<endl; 35 flag=0; 36 work(); 37 } 38 else if(a[0]=='d') 39 { 40 //cc++; 41 //str[l]=a; 42 //l++; 43 cc++; 44 for(int i=1;i<=cc;i++) 45 { 46 cout<<"|"; 47 for(int j=1;j<=5;j++) 48 cout<<" "; 49 } 50 cout<<a<<endl; 51 work(); 52 } 53 else if(a[0]=='f') 54 { 55 56 str[l]=a; 57 l++; 58 continue; 59 } 60 else if(a[0]==']') 61 { 62 63 sort(str+0,str+l); 64 for(int i=0;i<l;i++) 65 { 66 for(int k=1;k<=cc;k++) 67 { 68 cout<<"|"; 69 for(int j=1;j<=5;j++) 70 cout<<" "; 71 } 72 cout<<str[i]<<endl; 73 } 74 cc--; 75 return; 76 } 77 } 78 } 79 int main() 80 { 81 //freopen("r.txt","r",stdin); 82 //freopen("w.txt","w",stdout); 83 work(); 84 return 0; 85 }

?

總結

以上是生活随笔為你收集整理的1777:文件结构“图”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。