[理工]98台大电机DS数题

楼主: DZASHIANG (DZASHIANG)   2016-11-08 01:30:03
http://i.imgur.com/3LFoeKU.jpg
请问第四题的b为什么是true
http://i.imgur.com/v42NsvL.jpg
第六题的c为什么false
http://i.imgur.com/5sx4zbD.jpg
第十六题的a为什么true,若红黑树中树叶是红的->无children->false 这样的推论成立吗
拜托各位高手~谢谢 答案是参考手边别人写的解答
作者: gigayaya (gigayaya)   2016-11-08 02:27:00
作者: ken52011219 (呱)   2016-11-08 04:49:00
红黑树external node 必有两black nil6(c 应该是指 circular queue 会更好吧
作者: aa06697 (todo se andarà)   2016-11-10 13:46:00
一楼不能这样看 题目记体空间跟你写的是不一样的不过4 b应该是false没错 *x会是912 x是8067 c 是因为 一般queue 是从rear差值进去 如果你把head 放front 等于每次插入删除 都要先从front 跑到rear再改指标如果head 放rear 直接改指标就好更正 6 c抱歉再更正qq 是只有插入的时候插入次数一定>=删除次数 所以对于插入的效率较好者会较佳我是这样想的~
作者: ken52011219 (呱)   2016-11-10 14:12:00
这样子感觉用Circular link回来就更省事了令Delete + Insert = n times,Delete为 O(1)Insert O(n) O(n*(x))+O(n*(x-n))=O(nx)而Circular Insert or Delete 皆为 O(1)总运算 顶多O(n) 用单纯link worst case为O(n^2)话说可以问一下为什么是912吗@@? 912是x[3]的addr吧更正 x[3]的content
作者: aa06697 (todo se andarà)   2016-11-11 14:29:00
没错呀 x的address是800 因为x是pointer 放的content:806是address *x会去取806的content 所以是912 有点久没写要处理指标的语言了....有误还请更正是说E比较诡异XD 刚刚想说一个存在register内的consrant要怎么取址 试了一下果然compile不了 会当成是and 算子
作者: ken52011219 (呱)   2016-11-11 15:33:00
所以因为是pointer 所以会+6 吗会想问这个是因为我记得 cont *x 应该是读取它的addr假若因为Pointer的关系了话 cont *x 应该是806而 x[0] 的content 也是 806 这题就是true了没事 我记错了 qq~

Links booklink

Contact Us: admin [ a t ] ucptt.com