遇到一個工作中的問題

本文內容已被 [ 胡問之 ] 在 2013-03-06 15:23:23 編輯過。如有問題,請報告版主或論壇管理刪除.

上來聊幾句,也不是不得了,就是有點鬱悶,有興趣的職友請幫我理理頭緒。

要給公司現有係統做一個improvement,大概是這樣的,假如一個樹結構,每個結點有個checkbox,有的checked,有的unchecked,如果對樹的某個結點做一個操作,那麽這個結點的下層children中如果這個checkbox是checked,那麽也要實施這個操作,如此類推到最下層。這個問題不難,我寫個遞歸程序就解決了,問題是負責這塊的一個老頭同事不同意用遞歸,說將來不好維護,我就換了個方式,寫了個最 短小的method,用C#的yield return把需要進行操作的所有checked結點先找出來,然後再做這個操作,但測試時發現不行,因為這個操作有賴於上一層的結果,必須先做父結點,取得一個ID,然後才能做下一層結點,而yield return的結果是個沒有順序的集合,不能保證先做哪個後做哪個。我跟老頭談了這個問題,,希望能回到遞歸上來,但老頭很固執,堅持不用遞歸,說總可以找到別的辦法,真是頭大。這個樹結構是沒有規定深度的,不用遞歸就得按最大深度的可能性就是每個結點隻有一個CHILD這樣的深度來循環檢查,幾十行的程序變成了幾百行,還不知道能不能做出來。

我現在應該怎麽辦呢?老頭好象很難說服,堅持用遞歸怕得罪了他,而這樣下去,以後是不是都得按他的意思來?

所有跟帖: 

用堆棧 - 編譯器就是這樣實現遞歸的 -wave_forest- 給 wave_forest 發送悄悄話 wave_forest 的博客首頁 (18 bytes) () 03/06/2013 postreply 13:57:49

還好老頭沒說要我用匯編:) -胡問之- 給 胡問之 發送悄悄話 (0 bytes) () 03/06/2013 postreply 14:26:46

有例子嗎? -胡問之- 給 胡問之 發送悄悄話 (0 bytes) () 03/06/2013 postreply 14:27:21

樹狀結構好看,可以GUI用 -怪哉- 給 怪哉 發送悄悄話 怪哉 的博客首頁 (57 bytes) () 03/06/2013 postreply 14:03:21

俺經常講 -怪哉- 給 怪哉 發送悄悄話 怪哉 的博客首頁 (101 bytes) () 03/06/2013 postreply 14:16:35

那就再具體講講? -胡問之- 給 胡問之 發送悄悄話 (0 bytes) () 03/06/2013 postreply 14:30:50

謝謝幾位帥哥,除了技術上的建議 -胡問之- 給 胡問之 發送悄悄話 (117 bytes) () 03/06/2013 postreply 14:14:51

******再來謝謝上麵幾位的啟發, -胡問之- 給 胡問之 發送悄悄話 (77 bytes) () 03/06/2013 postreply 15:31:52

能皆大歡喜就好了 -胡問之- 給 胡問之 發送悄悄話 (133 bytes) () 03/06/2013 postreply 22:40:07

這個真的不能用遞歸 -村口阿牛- 給 村口阿牛 發送悄悄話 (113 bytes) () 03/06/2013 postreply 18:25:29

阿牛人!沒見你再扔炸彈?最近怎個情況? -眼冒金星- 給 眼冒金星 發送悄悄話 眼冒金星 的博客首頁 (0 bytes) () 03/06/2013 postreply 21:57:02

還行,該幹什麽就幹什麽 -村口阿牛- 給 村口阿牛 發送悄悄話 (0 bytes) () 03/06/2013 postreply 22:04:58

好心態。 -眼冒金星- 給 眼冒金星 發送悄悄話 眼冒金星 的博客首頁 (0 bytes) () 03/06/2013 postreply 23:58:48

實際深度不大,測試performance沒有問題。 -胡問之- 給 胡問之 發送悄悄話 (128 bytes) () 03/06/2013 postreply 22:24:54

every recursive problem has an iterative :) -神馬聊天- 給 神馬聊天 發送悄悄話 (0 bytes) () 03/08/2013 postreply 07:50:44

不知我說的對不對 -已婚男人- 給 已婚男人 發送悄悄話 (322 bytes) () 03/09/2013 postreply 21:20:48

請您先登陸,再發跟帖!