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灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP