<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    where the amazing happens

    算法1 : 遞歸

    一個簡單的遞歸程序,它讀取給定目錄下所有文件,然后以樹型的方式在屏幕上打印出來.昨天斷斷續(xù)續(xù)得花了1個多小時寫出來

    讀取文件

    package ?test;
    import ?java.io. * ;
    import ?java.util. * ;

    /**
    ?*???Put?files?into?a?tree
    ?*?
    */

    public ? class ?ReadFilesAndBuiltTree? {
    ????
    ????
    static ? class ?Node {
    ????????
    private ?Node?father;
    ????????
    private ?List?children;
    ????????
    private ?File?data;
    ????????
    public ?Node() {
    ????????????children?
    = ? new ?Vector();
    ????????}

    ????????
    public ?File?getData()? {
    ????????????
    return ?data;
    ????????}

    ????????
    public ? void ?addChild(Node?c) {
    ????????????
    this .getChildren().add(c);
    ????????}

    ????????
    public ? void ?setData(File?data)? {
    ????????????
    this .data? = ?data;
    ????????}

    ????????
    public ?List?getChildren()? {
    ????????????
    return ?children;
    ????????}

    ????????
    public ? void ?setChildren(List?children)? {
    ????????????
    this .children? = ?children;
    ????????}

    ????????
    public ?Node?getFather()? {
    ????????????
    return ?father;
    ????????}

    ????????
    public ? void ?setFather(Node?father)? {
    ????????????
    this .father? = ?father;
    ????????}

    ????????
    public ? boolean ?hasChildren() {
    ????????????
    return ?children.size() > 0 ;
    ????????}

    ????????
    public ?Node?getChile( int ?index) {
    ????????????
    return ?(Node)children.get(index);
    ????????}

    ????????
    public ?Node?getChild(String?fname) {
    ????????????Iterator?i?
    = ?getChildren().iterator();
    ????????????
    while (i.hasNext()) {
    ????????????????Node?bn?
    = ?(Node)i.next();
    ????????????????String?n?
    = ?
    ????????????????????bn.getData().getName();
    ????????????????
    if (n.equals(fname)) return ?bn;
    ????????????}

    ????????????
    return ? null ;
    ????????}

    ????????
    public ?List?getDirChildren() {
    ????????????List?c?
    = ? new ?Vector();
    ????????????
    for ( int ?i? = ? 0 ?;?i? < children.size();i ++ ) {
    ????????????????Node?n?
    = ?(Node)children.get(i);
    ????????????????
    if (
    ??????????????????n.getData().isDirectory()????????
    ????????????????)c.add(n);
    ????????????}

    ????????????
    return ?c;
    ????????}

    ????????
    public ?List?getFileChildren() {
    ????????????List?c?
    = ? new ?Vector();
    ????????????
    for ( int ?i? = ? 0 ?;?i? < children.size();i ++ ) {
    ????????????????Node?n?
    = ?(Node)children.get(i);
    ????????????????
    if (
    ??????????????????
    ! n.getData().isDirectory()????????
    ????????????????)c.add(n);
    ????????????}

    ????????????
    return ?c;
    ????????}

    ????}

    ????
    ????
    private ?ReadFilesAndBuiltTree() {}
    ????
    ????
    public ? static ?Node?getTree(File?rootDir) {
    ????????Node?r?
    = ? new ?Node();
    ????????r.setData(rootDir);
    ????????
    return ? new ?ReadFilesAndBuiltTree().builtTree(r);
    ????}

    ????
    ????
    private ?Node?builtTree(Node?root) {
    ????????
    if ( ! root.getData().isDirectory()) return ?root;
    ????????File?f?
    = ?root.getData();
    ????????File[]?fs?
    = ?f.listFiles();
    ????????
    for ( int ?i? = ? 0 ?;?i? < ?fs.length?;?i ++ ?) {
    ????????????File?ff?
    = ?fs[i];
    ????????????Node?n?
    = ? new ?Node();
    ????????????n.setData(ff);
    ????????????n.setFather(root);
    ????????????root.addChild(builtTree(n));
    ????????}

    ????????
    return ?root;
    ????}

    ????
    ????
    public ? static ? void ?main(String[]?args) throws ?Exception {
    ????????Node?root?
    = ?getTree( new ?File(ShowFileDir.ROOT_DIR));
    ????????Node?cn?
    = ?root.getChild( " maps " );
    ????????System.out.println(cn.getChildren().size());
    ????}

    ????
    }


    輸出文件
    package?test;
    import?java.io.File;
    import?java.util.Iterator;
    import?java.util.List;

    import?test.ReadFilesAndBuiltTree.Node;

    /**
    ?*??Print?the?tree?to?screen
    ?*?
    */

    public?class?ShowFileDir?{
    ????
    ????
    public?static?String?ROOT_DIR?=?"E:/y音樂";
    ????
    ????
    public?ShowFileDir(){
    ????}

    ????
    ????
    public?void?printNodes(){
    ???????Node?root?
    =?ReadFilesAndBuiltTree.getTree(new?File(ROOT_DIR));
    ???????printNode(root,
    0);
    ????}

    ????
    ????
    private?void?printNode(Node?root,int?depth){
    ????????
    if(!root.hasChildren())return;
    ????????pd(root.getData().getName(),depth);
    ????????pindent(
    ++depth);
    ????????List?l?
    =?root.getFileChildren();
    ????????pc(l,depth);
    ????????l?
    =?root.getDirChildren();
    ????????
    for(int?i?=?0?;?i?<?l.size()?;?i++){
    ????????????Node?c?
    =?(Node)l.get(i);
    ????????????printNode(c,depth);
    ????????}

    ????}

    ????
    //?Screen?methods????
    ????private?void?pc(List?l,int?count){
    ????????Iterator?i?
    =?l.iterator();
    ????????
    while(i.hasNext()){
    ????????????Node?n?
    =?(Node)i.next();
    ????????????pp(count);
    ????????????p(
    "+"+n.getData().getName()+"\n");
    ????????}

    ????}

    ????
    ????
    private?void?pd(String?t,int?depth){
    ????????String?spc?
    =?"";
    ????????
    for(int?i?=?0;?i<?depth;?i++)spc+="-";
    ????????p(spc
    +"+"+t+"\n");
    ????}

    ????
    ????
    private?void?pindent(int?depth){
    ????????String?spc?
    =?"";
    ????????
    for(int?i?=?0;?i<?depth;?i++)spc+="?";
    ????????System.out.println(spc
    +"|");
    ????}

    ????
    ????
    private?void?pp(int?count){
    ????????
    for(int?i?=?0?;?i?<?count?;?i++)p("?");
    ????}

    ????
    ????
    private?void?p(String?s){System.out.print(s);}
    ????
    ????
    public?static?void?main(String[]?args)throws?Exception{
    ????????ShowFileDir?sfd?
    =?new?ShowFileDir();
    ????????sfd.printNodes();
    ????}

    }



    2個類,一個負(fù)責(zé)讀.一個負(fù)責(zé)寫.
    輸出結(jié)果:

    +y音樂
    ?|
    -+歐美
    ? |
    ? +WeAreTheWorld.txt
    ? +WeAreTheWorld.wmv
    ? +WhereAreYou!.txt
    ? +jeanny_3.mp3
    ? +blood-upon-the-risers.mp3
    ? +Broken Down Angel.txt
    ? +Love Hurts.txt
    ? +Broken Down Angle.mp3
    ? +Love Hurts.mp3
    ? +Celien Dion - God Bless America.mp3
    ? +SS閃電部隊在前進(jìn).mp3
    ? +The_Sun_Is_Burning_Simon_and_Garfunkel.mp3
    ? +vitas.-.opera02.rm
    ? +chivas we could be together.wma
    ? +綠色椅子.mp3
    ? +come away with me-norah jones.wma
    ? +the sound of silence.mp3
    --+live from new york city,1967-simon&garfunkel
    ?? |
    ?? +a church is burning.mp3
    ?? +a hazy shade of winter.mp3
    ?? +a most peculiar.mp3
    ?? +a poem on the underground wall.mp3
    ?? +anji.mp3
    ?? +benedictus.mp3
    ?? +blessed.mp3
    ?? +for emily,whenever I may find her.mp3
    ?? +he was my brother.mp3
    ?? +howeward bound.mp3
    ?? +I am a rock.mp3
    ?? +leaves that are green.mp3
    ?? +richard cory.mp3
    ?? +sparrow.mp3
    ?? +the 59th street bridge song.mp3
    ?? +the dangling conversation.mp3
    ?? +the sound of silence.mp3
    ?? +wednesday morning,3A.M.mp3
    ?? +you don't know where your interest lies.mp3
    -+其他
    ? |
    ? +StarCraft - Techno Mix.mp3
    ? +牽手.mp3
    ? +螢火蟲 .mp3
    ? +njsw.mp3
    ? +zeldaN64.rar


    這是算法系列的第一篇,下一個準(zhǔn)備寫動態(tài)規(guī)劃的.

    posted on 2006-04-23 05:00 where the amazing happens 閱讀(912) 評論(1)  編輯  收藏 所屬分類: 算法&數(shù)據(jù)結(jié)構(gòu)

    評論

    # re: 算法1 : 遞歸[未登錄] 2008-01-20 13:10 無名

    private ReadFilesAndBuiltTree() {}
    你這里為什么要用private來定義構(gòu)造函數(shù)呢  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    公告

    點擊這里給我發(fā)消息

    導(dǎo)航

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統(tǒng)計

    常用鏈接

    留言簿(3)

    隨筆分類(18)

    隨筆檔案(17)

    文章分類

    相冊

    其他我的blog

    技術(shù)Blog

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲1234区乱码| 特级毛片A级毛片免费播放| 亚洲综合久久1区2区3区 | 亚洲一级黄色视频| 内射干少妇亚洲69XXX| 亚洲欧美国产欧美色欲| 日韩人妻一区二区三区免费| 日韩精品成人亚洲专区| 亚洲人成人77777在线播放| 久久一区二区免费播放| 日韩激情淫片免费看| 久久综合亚洲色HEZYO社区| 亚洲精品视频免费| 四虎成人精品一区二区免费网站| 亚洲尹人九九大色香蕉网站 | 亚洲高清国产AV拍精品青青草原 | 99久久国产亚洲综合精品| 成全高清在线观看免费| 四虎永久免费观看| 亚洲日本久久久午夜精品| 好吊妞在线成人免费| 美女无遮挡免费视频网站| 亚洲日韩中文无码久久| 产传媒61国产免费| 日本免费人成黄页在线观看视频| 亚洲国产精品成人综合色在线| 57PAO成人国产永久免费视频| 久久精品国产精品亚洲色婷婷| 两个人看的www免费视频| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 在线a亚洲v天堂网2019无码| 中文字幕乱码亚洲精品一区| 成人毛片免费网站| 亚洲精品中文字幕| 亚洲日韩小电影在线观看| 在线免费播放一级毛片| 亚洲av无码专区在线| 亚洲人成无码久久电影网站| 精品一区二区三区无码免费视频| 亚洲成Av人片乱码色午夜| 可以免费看黄的网站|