精品日本亚洲一区二区三区,99久久精品免费观看国产,99久久免费精品,亚洲精品国产一区二区成人,日本亚洲精品一区二区三区四区,国产亚洲精品成人久久网站,久久亚洲男人第一AV网站,精品国产高清一区二区广区,久久精品五月天很黄很艳女TV

考研論壇

 
查看: 848|回復: 11
打印 上一主題 下一主題

[計算機] 數據結構

[復制鏈接]

15

主題

67

帖子

280

積分

一般戰友

Rank: 2

精華
0
威望
30
K幣
250 元
注冊時間
2014-3-21
跳轉到指定樓層
樓主
發表于 2014-12-13 22:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
題目:輸入一個整數data和一棵二元樹,從樹的根節點開始往下訪問一直到葉節點,所經過的所有節點形成一條路徑。打印出路徑的和與data相等的所有元素。

我的算法:看看對不對啊。

IMG_20141213_204858.jpg (659.98 KB, 下載次數: 67)

IMG_20141213_204858.jpg

IMG_20141213_204919.jpg (584.09 KB, 下載次數: 64)

IMG_20141213_204919.jpg

IMG_20141213_204858.jpg (659.98 KB, 下載次數: 66)

1

1

IMG_20141213_204919.jpg (584.09 KB, 下載次數: 65)

2

2
    回復

    使用道具 舉報

    4

    主題

    35

    帖子

    383

    積分

    一般戰友

    Rank: 2

    精華
    2
    威望
    60
    K幣
    323 元
    注冊時間
    2014-3-2
    沙發
    發表于 2014-12-13 22:56 | 只看該作者
    你寫的有問題。這題用先序非遞歸比較簡單。一旦找到路徑和等于data時,保留top,把棧中所有結點復制到另外一個棧,然后輸出
    回復

    使用道具 舉報

    15

    主題

    67

    帖子

    280

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    30
    K幣
    250 元
    注冊時間
    2014-3-21
    板凳
     樓主| 發表于 2014-12-14 12:59 | 只看該作者
    琴魂醉 發表于 2014-12-13 22:56
    你寫的有問題。這題用先序非遞歸比較簡單。一旦找到路徑和等于data時,保留top,把棧中所有結點復制到另外 ...

    是嗎,王道上的題,它說用遞歸
    回復

    使用道具 舉報

    4

    主題

    35

    帖子

    383

    積分

    一般戰友

    Rank: 2

    精華
    2
    威望
    60
    K幣
    323 元
    注冊時間
    2014-3-2
    地板
    發表于 2014-12-14 19:47 | 只看該作者
    本帖最后由 琴魂醉 于 2014-12-14 20:06 編輯
    劉中鋒 發表于 2014-12-14 12:59
    是嗎,王道上的題,它說用遞歸

    我只是說非遞歸先序比較簡單,沒說遞歸不可以
    typedef struct btnode
    {
    int data,flag=0;
    struct btnode *lchild,*rchild;
    }*BiTree,btnode;
    void pre(BiTree bt,int datasum)//通過先序非遞歸,棧中保存的都是祖先結點
    {
    int top=0,sum=0,i;
    BtTree s[],s1[],p=bt;//棧足夠大
    while(p||top>0)
    {
        if(p)
       {
         s[++top]=p;
         if(!p->lchild&&!p->rchild)//判斷是否是葉子結點
        {
            sum=0;
            for(i=top;i>0;--i)//把棧中祖先結點復制到s1中
            {
              s1(i)=s (i);  //由于[]沒法顯示,我就是用()當做[]
              sum+=s (i)->data;
            }//endfor
            if(sum==datasum)
           {      
               for(i=1;i<top;++i)//依次打印,即可從祖先結點到當前結點
              {
               printf("%d/t",s1 (i)->data);
              }//endfor
            }//endif
         }//endif
         p=p->lchild;//訪問左孩子     
       }
       else
       {
        p=s[top--];
        p=p->rchild;
       }
    }//endwhile
    }
    回復

    使用道具 舉報

    4

    主題

    35

    帖子

    383

    積分

    一般戰友

    Rank: 2

    精華
    2
    威望
    60
    K幣
    323 元
    注冊時間
    2014-3-2
    5
    發表于 2014-12-14 19:53 | 只看該作者
    遞歸都可以轉換成非遞歸算法,所以別局限于遞歸,只是遞歸相對于非遞歸好理解,容易想。
    回復

    使用道具 舉報

    4

    主題

    35

    帖子

    383

    積分

    一般戰友

    Rank: 2

    精華
    2
    威望
    60
    K幣
    323 元
    注冊時間
    2014-3-2
    6
    發表于 2014-12-14 19:55 | 只看該作者
    好奇怪,棧那邊賦值的i顯示不出來。
    回復

    使用道具 舉報

    15

    主題

    67

    帖子

    280

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    30
    K幣
    250 元
    注冊時間
    2014-3-21
    7
     樓主| 發表于 2014-12-20 23:10 | 只看該作者
    琴魂醉 發表于 2014-12-14 19:47
    我只是說非遞歸先序比較簡單,沒說遞歸不可以
    typedef struct btnode
    {

    好好,謝謝啊,
    回復

    使用道具 舉報

    15

    主題

    67

    帖子

    280

    積分

    一般戰友

    Rank: 2

    精華
    0
    威望
    30
    K幣
    250 元
    注冊時間
    2014-3-21
    8
     樓主| 發表于 2014-12-20 23:13 | 只看該作者
    琴魂醉 發表于 2014-12-14 19:55
    好奇怪,棧那邊賦值的i顯示不出來。

    你的那個算法?
    回復

    使用道具 舉報

    0

    主題

    3

    帖子

    0

    積分

    新手上路

    Rank: 1

    精華
    0
    威望
    0
    K幣
    0 元
    注冊時間
    2014-9-11
    9
    發表于 2014-12-21 09:18 來自手機 | 只看該作者
    劉中鋒 發表于 2014-12-20 23:13
    你的那個算法?

    王道有嗎

    來自Android客戶端

    回復

    使用道具 舉報

    0

    主題

    3

    帖子

    0

    積分

    新手上路

    Rank: 1

    精華
    0
    威望
    0
    K幣
    0 元
    注冊時間
    2014-9-11
    10
    發表于 2014-12-21 09:19 來自手機 | 只看該作者
    劉中鋒 發表于 2014-12-20 23:13
    你的那個算法?

    那人寫的有問題,根本就沒賦進去

    來自Android客戶端

    回復

    使用道具 舉報

    您需要登錄后才可以回帖 登錄 | 注冊 人人連接登陸

    本版積分規則   

    關閉

    您還剩5次免費下載資料的機會哦~

    掃描二維碼下載資料

    使用手機端考研幫,進入掃一掃
    在“我”中打開掃一掃,
    掃描二維碼下載資料

    關于我們|商務合作|小黑屋|手機版|聯系我們|服務條款|隱私保護|幫學堂| 網站地圖|院校地圖|漏洞提交|考研幫

    GMT+8, 2026-5-1 05:23 , Processed in 0.088961 second(s), Total 23, Slave 23(Usage:7.25M, Links:[2]1,1_1) queries , Redis On.

    Powered by Discuz!

    © 2001-2017 考研 Inc.

    快速回復 返回頂部 返回列表
    × 關閉