NTUE-CS101 板


LINE

其实不用想的那麽复杂 现在程式要做的事情有 1. 输入资料 2. 产生节点 3. 找到节点在串列里面的位置 4. 插进去 上礼拜是把 3 简化成 所有新的节点的位置都是 head 现在需要思考一下 怎麽找到新的节点 他的後一个跟前一个 这里先把这三个点取个名字 新的这个点叫做 p 他後面那个点(比他大的)叫做 q1 他前面那个点(比他小的)叫做 q2 ( p, q1, q2 都是 指标 ) 为什麽需要q1和q2? 先看第四步你就知道了 在串列里面 不管你要擦头 擦屁 还是擦中间 一定要有的步骤是 把前面一个人屁股的那条线接到你头上 把你屁股上的线贴到後面那个人脸上 写成程式就是 q2->setNext(p); p->setNext(q1); 再回来想 3 怎麽写 找到串列里面的位置 想想我上礼拜有跟你们说把串列印出来的方法(走得很匆忙那次) q=head; while(q!=NULL) { cout<<q->getNo(); q=q->getNext(); } 先解释一下 q=head; // 从头开始 while(q!=NULL) // 如果 q 不是接地 ( 没有东西了 ) cout // 把 q 印出来 q=q->getNext(); // getNext()是传回下一个人的位址 ( 你的函数名字可能不一样 ) // 所以 q 会指向他下一个人 OK 把 cout 拿掉然後改一下这个就可以用在 3 了 q1=head; // 用来存 p 的下一个 ( 比他大的那个 ) 人的指标 q2=NULL; // 用来存 p 的前一个 ( 比他小的那个 ) 人的指标 while(q1!=NULL && q1->getNo() < p->getNo() ){ q2=q1; q1=q1->getNext(); } // 回圈里面一样 q1 指向 q1 的下一个 // 先看 while 里面条件 如果 q1 比 p 的数字小的话 就代表还要往下找 // 这时 先把原本的 q1 存到 q2 ( 等下举例说明 ) // 然後 q1 指到他下面的那个人 说明一下为什麽要 q2=q1 假设你的串列已经有 1 5 7 要把 6 插进来 一开始 q1=1, q2=null ; 1 < 6 所以要继续找 q1=5, q2=刚才的q1=1 ; 5 < 6 继续往下 q1=7, q2=刚才的q1=5 ; 7 > 6 所以这就是他的位置 这时 从while回圈里面跳出来 把 5 ( q2 ) 接到 6 ( p ) 把 6 ( p ) 接到 7 ( q1 ) -- 解释部份到这里结束 -- 完整程式码参考 http://0rz.tw/io1uG 这个是示意版 只有串列的部份 至於每个节点内的资料我只有设定作号 老师要求的其他资料就自己试着加上去吧 有问题在msn问我 掰XD ※ 引述《gingkoginkgo (人中拉拉!)》之铭言: : ※ 引述《didi12252001 (撒娇)》之铭言: : : 有谁把程式写出来的 : : 今天王老大的作业 : : 我卡题了 : : 哪个写的出来的交一下吧 : 大致上思考流程如下 //这是当年的我写的 说不定有错 不过给个方向就是 : 插头 : 1.产生新node 指定data : 2.新node连结到head : 3.head=新node : 插屁屁 : 情形(1)head=NULL时 直接连上去 : 情形(2)head!=NULL时 : 1.p=head //make sure head exist : 2.利用P移动到下一个(next)直到next=NULL : 从小到大 : 1.先决定要3->5->6 还是9->8->2 : 2.考虑三种情况:插头.插屁屁或是插中间 : 第一次 head->□ 进for洄圈 : node* temp=new node; : node*p = new node; : 上面这串的结果是 temp→□(temp指到一个新的) : p→□(p也是指到一个新的) : temp=head->next; 这串的话,就是让Temp指到NULL, : 因为你head只到的物件, : 并没有串到任何物件然後又让 : p=temp->next; : temp本身就没指到东西了,又让p指过去, : 所以还是没任何意义到最後就变成 : head→□ □ □ 成功只有head, : 剩下的两个就失连了 : 其实也可以爬爬100级的版? 看当年学长我(?)是怎麽跌跌撞撞到头很痛XD : 不过现在仍旧头痛中就是 : 其实作法有很多种 : 也可以说你就先生出个空的头 这个头不放任何资料 只是指向下一个 : 你就会意外的发现好像有比较简单喽.... : 其实个人觉得Link list画图很重要 : 会把架构和你要做的事清楚的看明白 : 如果你能嚐试讲出你每一步再做什麽 那大概就OK了 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.68.15.209
1F:推 rockmyangel:真的棒 我可能快要 稍微懂了 04/02 20:49
2F:→ rockmyangel:越来越难了欸 大家努力阿 04/02 20:49
3F:推 didi12252001:我有完整版的 包然有的没的标准 还包含英英注解 04/03 00:00
4F:推 didi12252001:要先上传的找我拿档案吧 04/03 00:00







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

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

TOP