Grad-ProbAsk 板


LINE

※ 引述《nonagoner (哈)》之銘言: : 1.Write a function to check whether the contents of two stacks have the same : number of elements. Neither stack should be changed. 寫個函數出來~確認2個stack的有相同數目的元素個數~兩個堆疊都不能被改變 (最後函式結束時~stack的內容不變) function check_stack(stack_1 , stack_2) { string x,array[n]; ///定義字串型別 x與一個ㄧ維陣列 int y=0,z=0; while(stack_1 != null) { x = pop(stack_1); /// 不斷取出stack的Top端的內容 y++; /// 並y=y+1紀錄個數(y= 1 ~ stack個數) array[y] = x; /// 把這些內容依序存入陣列[1],[2],[3]....[y] } for(int i=y;i>=1;i--) { Push(stack_1,array[i]) /// 知道個數後,開始把陣列的值由 /// [y],[y-1],...[2],[1]反向放回去 } ///至此stack_1不變,但得到y=【stack_1元素個數】 while(stack_2 != null) ///stack_2同上 最後取得z = 【stack_2元素個數】 { x = pop(stack_2); z++; array[z] = x; } for(int i=z;i>=1;i--) { Push(stack_2,array[i]) } if(y==z) ///最後判斷y跟z的數字(各自的元素個數)有沒有相符 { ///就可知道 要傳回true或false了 return true; } else { return false; } } : 2.Write an algorithm that determines whether a binary tree is complete. : 想不太出來要怎麼寫 有高手可以解答嗎~謝謝 設node數有n個 樹高:h 為每一個node做編號 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 由上層到下層,由左到右,對每個node 依序編號 第一層 (root)編號1 第二層 編號2,編號3 ... .. 第i層 編號2^(i-1),編號2^(i-1)+【1】,編號2^(i-1)+【2】,...,編號2^(i-1)+【2^(i-1)-1】 直到最後ㄧ個node做完結束。 開始 由上到下,由左往右找 去對每ㄧ個node做以下判斷 //註: [A/2]就是 A除2 取整數 假設這個node編號是A if( (這個node的父點的編號是 [A/2]) && [(node編號為偶數&&是父點的左子點) || (node編號為奇數&&是父點的右子點)] ) { 那麼此 binary tree is complete 。 } else { 那麼此 binary tree is not complete 。 } eg 1 / \ 2 3 \ / \ 4 5 6 node編號4 => 父點編號 = 2 = [4/2] 5 => 父點編號 = 3 != [5/2] //這個node違反,故此tree is not complete 6 => 父點編號 = 3 = [6/2] 1 / \ 2 3 \ 4 編號4的node =>編號為偶數,但卻是父點的右子點! 違反! 1 / \ 2 3 / 4 編號4的node => 父點為編號3,不是正確編號2。 違反! ---------- ㄧ起討論看看吧~有疑慮請跟我說 演算法跟函數不難寫 寫法有很多種~不同人寫出來有不同的樣子~~ -- 嫂子 叫我鬍子就好了 _() ▃▄▅▄ 我會很有禮貌的 ( ﹎﹎ ) § ● ● = = ◥◤) ψmroscar 斗╯ | | 三明書局-你所不知道的關二哥 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.39.210.24
1F:推 FRAXIS:那就看他說不能改變 是說計算中途不能改變 01/28 18:35
2F:→ FRAXIS:還是說 計算前和計算後一樣即可 01/28 18:36
計算後 原Stack的內容值 沒改變即可 ※ 編輯: qazwsxee 來自: 114.39.210.24 (01/28 19:10)
3F:推 nonagoner:感謝解答第一題很清楚 不過第二題不知道有沒有辦法算高 01/28 20:22
4F:→ nonagoner:用遞迴寫出呢? 01/28 20:22
{F(n) = log n +1 { 2 {f(1)=1 //f(1)=>ㄧ個節點=> 就是root =>我設此樹的高度【由1開始】 1~h 若【由0開始】F(n)就不用多+1 有幾個節點~就可知道高為多少~ ※ 編輯: qazwsxee 來自: 114.39.210.24 (01/28 20:35)
5F:推 FRAXIS:第二題應該可以不用編號 直接用遞迴判斷 01/28 20:45
演算法寫法有很多種~不同人寫出來有不同的樣子~~考試時可以想得出來即可囉
6F:推 nonagoner:http://tinyurl.com/yd6wcp8 這裡有寫一個不過看不懂... 01/28 21:35
height(t) = if (t==NULL) then 0 ///若為空=>下方沒有子樹,回傳0 else 1+ max(height(t.left),height(t.right)) //若不為空,比較(t的左子樹高度)和(t的右子樹高度)取較大值 //然後 1+那個Max值 即是樹高 這是遞迴的程式寫法~ 若n=1 (只有root點) height(n) => height(n)不為空 => 比較(t的左子樹高度)和(t的右子樹高度)取較大值 =>height(t的左子樹高度) =NULL(空) ,回傳0 =>height(t的右子樹高度) =NULL(空) ,回傳0 height(n) = 1 + Max(0,0)= 1 => 高度就是1囉 ※ 編輯: qazwsxee 來自: 114.39.210.24 (01/28 21:54)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP