C_and_CPP 板


LINE

※ 引述《shadown ()》之铭言: :  最近遇到一个面试官,有问到我一个问题,是关於串列 :  方面的。 :  题目是:连续输入几个数字,最後输入零表示程式结束。 :      之後再输入一个数字,将前面输入的数字与此 :      数比较,印出比此数大的数字。 :  我的解答,是用while来判断串列中的data值是否为零, :  是的话表示资料已经到最後一笔,结束比较大小的判断。 :  面试官的解答,是用while来判断串列中的next值是否为 : NULL,是的话表资料已经到最後一笔,结束比较大小的判 :  断。 :  面试官的回答虽然在逻辑上是比较合理,但我觉得我的方 :  法应该也不能算错,毕竟题目是说用零来当结束。所以想 :  请教一下各位前辈,我这样算是错的吗? 补充一点, 一般的写法也不是像考官说的那种. 通常是检查 pointer 本身是不是 null, 而不是 next 是不是 null. (当然, 考官说的要写也写得出来) for(node* p = myList; p != NULL; p = p->next) { // do something on p } 如果检查的是 p->next 是否 null 就比较麻烦了 (一时想不到比较好看的写法) if (myList != null) { node * p = null; do { p = ((p == NULL)? myList : p->next); // do something with p } while (p->next != null) 超难看 XDD --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 VictorTom:个人觉得拿next判断也很常见, 不过用next判断有一个问题 04/27 18:53
2F:→ VictorTom:是, 要先确定第一个node本身是不是null或保证一定有值:) 04/27 18:54
3F:推 ledia:换成 while ((p=p->next) != null); 会不会太丑 ? XD 04/27 18:57
4F:→ adrianshum:嗯, 可是严格来说那也是检查 p 而不是检查 next呀 04/27 19:00
想了一想, 修改过, 有好看一点了 :P 不过我还是比较喜欢第一种 ※ 编辑: adrianshum 来自: 202.155.236.82 (04/27 19:03)
5F:推 VictorTom:小弟我记得之前写list时, always让list有个dummy的head, 04/27 19:06
6F:→ VictorTom:之後的判断就可以直接while或for判断p->next是否null了. 04/27 19:07
7F:→ VictorTom:现在想一想, 似乎直接判断p就好了, 还省1个node的空间XD 04/27 19:08
8F:推 VictorTom:当时这麽做, 是因为我很懒的判断现在有没有第一笔资料, 04/27 19:10
9F:推 shadown:第一种写法好棒!原来指标可以用for来判断,又学了一招。 04/27 19:10
10F:推 ledia:我也是习惯用个 dummy head .... 04/27 19:10
11F:→ VictorTom:是不是需要建head node等等; 所以固定开个dummy head:) 04/27 19:11
12F:→ VictorTom:l大(握)....XD check eax和eax加固定bias不晓得有没有 04/27 19:13
13F:→ VictorTom:performance上的差距, 虽然看起来都是一条inst解决@_@" 04/27 19:13
14F:→ VictorTom:check的地方忘了 [], 果然我和asm不熟....Orz 04/27 19:14
15F:→ adrianshum:我倒没有做过 dummy head 耶. 有一个 dummy node 总 04/27 19:15
16F:→ adrianshum:觉得有点怪怪的 XD 倒是通常外面包一个 struct (C 的 04/27 19:16
17F:→ adrianshum:年代) 比较多. 04/27 19:16
18F:推 VictorTom:糟~~小弟我记忆体只有128M跑98的时候就在开dummy了XDDD 04/27 19:32
19F:推 Yshuan:dummy就跟阵列边界值多宣1个一样 省事但是费空间罗~ 04/27 22:07
20F:→ adrianshum:我学 programming 的年代是 95 + P-133 + 32MB RAM XD 04/28 01:44
21F:推 VictorTom:再说下去等下就有人拿洞洞卡写程式了这我哪受得了XD 04/28 01:46
22F:→ VictorTom:不过, 以前写程式的时候真的是有一堆乱七八糟乱用的. 04/28 01:47
23F:→ VictorTom:现在工作是把乱七八糟的程式加/修一些乱七八糟的代码Orz 04/28 01:48







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

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

TOP