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

考研論壇

標(biāo)題: 數(shù)據(jù)結(jié)構(gòu) [打印本頁]

作者: 劉中鋒    時(shí)間: 2014-12-13 22:12
標(biāo)題: 數(shù)據(jù)結(jié)構(gòu)
題目:輸入一個(gè)整數(shù)data和一棵二元樹,從樹的根節(jié)點(diǎn)開始往下訪問一直到葉節(jié)點(diǎn),所經(jīng)過的所有節(jié)點(diǎn)形成一條路徑。打印出路徑的和與data相等的所有元素。

我的算法:看看對(duì)不對(duì)啊。

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

IMG_20141213_204858.jpg

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

IMG_20141213_204919.jpg

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

1

1

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

2

2

作者: 琴魂醉    時(shí)間: 2014-12-13 22:56
你寫的有問題。這題用先序非遞歸比較簡(jiǎn)單。一旦找到路徑和等于data時(shí),保留top,把棧中所有結(jié)點(diǎn)復(fù)制到另外一個(gè)棧,然后輸出
作者: 劉中鋒    時(shí)間: 2014-12-14 12:59
琴魂醉 發(fā)表于 2014-12-13 22:56
你寫的有問題。這題用先序非遞歸比較簡(jiǎn)單。一旦找到路徑和等于data時(shí),保留top,把棧中所有結(jié)點(diǎn)復(fù)制到另外 ...

是嗎,王道上的題,它說用遞歸
作者: 琴魂醉    時(shí)間: 2014-12-14 19:47
本帖最后由 琴魂醉 于 2014-12-14 20:06 編輯
劉中鋒 發(fā)表于 2014-12-14 12:59
是嗎,王道上的題,它說用遞歸

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

作者: 琴魂醉    時(shí)間: 2014-12-14 19:53
遞歸都可以轉(zhuǎn)換成非遞歸算法,所以別局限于遞歸,只是遞歸相對(duì)于非遞歸好理解,容易想。
作者: 琴魂醉    時(shí)間: 2014-12-14 19:55
好奇怪,棧那邊賦值的i顯示不出來。
作者: 劉中鋒    時(shí)間: 2014-12-20 23:10
琴魂醉 發(fā)表于 2014-12-14 19:47
我只是說非遞歸先序比較簡(jiǎn)單,沒說遞歸不可以
typedef struct btnode
{

好好,謝謝啊,
作者: 劉中鋒    時(shí)間: 2014-12-20 23:13
琴魂醉 發(fā)表于 2014-12-14 19:55
好奇怪,棧那邊賦值的i顯示不出來。

你的那個(gè)算法?
作者: tang19930314    時(shí)間: 2014-12-21 09:18
劉中鋒 發(fā)表于 2014-12-20 23:13
你的那個(gè)算法?

王道有嗎
作者: tang19930314    時(shí)間: 2014-12-21 09:19
劉中鋒 發(fā)表于 2014-12-20 23:13
你的那個(gè)算法?

那人寫的有問題,根本就沒賦進(jìn)去
作者: 劉中鋒    時(shí)間: 2014-12-21 12:53
tang19930314 發(fā)表于 2014-12-21 09:18
王道有嗎

有,是總結(jié)部分的思考題
作者: tang19930314    時(shí)間: 2014-12-21 12:56
劉中鋒 發(fā)表于 2014-12-21 12:53
有,是總結(jié)部分的思考題

page




歡迎光臨 考研論壇 (http://www.5522pp.com/) Powered by Discuz! X3.2