Programming 板


LINE

※ 引述《Lordaeron (Terry)》之銘言: : ※ 引述《adrianshum (Alien)》之銘言: : : 就說你沒在留心別人在說什麼. : : 你可以把 array 或 linked list 理解成實作 好,不要吵. 就算這個千萬不能想成那個,那也只不過是: "直尺的邊線很直" "太陽從東邊出來" 那一類的常識,不是嗎? 想想看,為什麼大家一開始學程式,老師說array的取值時間是O(1),他們就一點 沒有懷疑,可能也沒有具體思考過? 為什麼array的任一元素取值是O(1)時間成本? 在此所講的array是 C 的記憶體對應的基本 array. 為什麼取值是 O(1) ? 是因為這個array對應記憶體,而 array的底層---記憶體的取值都是用base和offset 來算,任何位置全都是幾個加法求出來,然後去取值,所以是 O(1). 由這項基本知識,我們可以隱約知道, array 的隨機存取便利並不是因為 C 語言本身 的特質,而只不過是幾乎大部份的程式語言基礎都在這一台機器上. 機器特性是這樣, 順著機器的特性, array 才有隨機存取的特徵. 最初那位love誰網友所回應說:stack或queue要怎麼做 array? 是,的確很具體. 但是如果就因為這樣,就認為任何語言全部都是這樣,太不切實際. 事實上,跳到不同語言中,思考的基礎不會一樣. 若你只是因為站在 C 語言中 看到 array 就是這樣子,就拒絕接受其他種語言的可能,拒絕思考用其他模型實作 array, 那未免太可憐. 這種思考方式只不過是打從你學程式一開始,就已經養成拒絕思考的習慣. 說穿了,很多人跟你一樣,全都是時薪多少錢的程式匠而已,沒什麼了不起. 與其留在圈圈之內,因為無足夠資訊而說不,倒不如跨出圈圈,多看一點點東西, 然後有足夠的資訊可以說不. 另外... 如果把隨機存取的便利抽掉, array 的原型是什麼? Array 就是一堆數字(索引)對應到一堆目標物,所以 array 的原型就是函數. 照電腦電路來看,可能是因為電力速度很快,所以從索引數字,base,offset算到目標元素 太快了. 但是,換作你用人力在真正的倉儲系統找東西,給你一個編號,你還是找蠻久的, 所以隨機存取可能不是必要. 不過,許多別的電腦語言也要實作 array, VM也需要實作 記憶空間,像 Java 的 heap. 在這時,所謂實體結構的堅持就很沒有必要. 如你所想,你認為我用stack做出linked list其實是用linked list實作linked list, 顯然是直接認定 stack 就是linked list. 但是這樣想也很有缺陷,誰說stack就一定 是linked list了? 對一個抽象結構我們只關心介面,而不關心實作,你這樣一下子 進去拆解裡頭的結構顯然很亂. 同樣的道理,用來做資料庫索引的B-Tree,也直接想成 用array實作的樹結構,那就回去慢慢分析所有的結構,被那堆資訊淹沒. 我們只是需要那些抽象結構幫助好用好想而已,而不是強調抽象結構必須是怎麼樣的 抽象結構,或不得是哪些實體結構. ------ 最後回歸正題: 根本不值得爭論stack可不可以做 linked list. 以我回應原po的文字意思,是說, "這種問題很好,表示你有在動腦袋." "如果你有在動腦袋,我建議你怎麼動腦袋比較好." 重點是在對原po的學習加以鼓勵. 但是,你覺得我們真的要浪費時間爭執 stack 和 queue 到底可以不可以做 array 和 linked list 嗎? 等你爭完了,會發現:一場空. 我隨便舉一個例子,例子可能很不完整很破爛,你卻認真分析那個例子, 那麼誰是傻子? 你早就知道這沒有意義了,不是嗎? --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.209.63 ※ 編輯: yauhh 來自: 218.160.209.63 (03/10 23:37)
1F:→ Lordaeron:array/stack/queue 是處理資料的方式 114.45.226.61 03/14 09:38
2F:→ Lordaeron:Linked List 是資料存放的方法. 114.45.226.61 03/14 09:38
3F:→ Lordaeron:有人連基本的定義也不懂,給link 也不看 114.45.226.61 03/14 09:39
4F:→ Lordaeron:就愛在這扯在一起談 114.45.226.61 03/14 09:39
5F:→ firejox:Link List/array/stack/queue都可以作為 210.60.107.233 03/14 17:22
6F:→ firejox:處理資料的方式和存放的方法 210.60.107.233 03/14 17:23
7F:→ firejox:後來卻扯遠了QQ 210.60.107.233 03/14 17:31
8F:→ Lordaeron:http://xlinux.nist.gov/dads// 自己查 114.45.226.61 03/14 21:01
9F:→ Lordaeron:array/stack/queue都有operation 114.45.226.61 03/14 21:02
10F:→ Lordaeron:但linklist 沒有 114.45.226.61 03/14 21:03
11F:推 arcred:呃..linked list刪點加點都是operation啊 208.29.54.91 03/14 22:54
12F:→ arcred:不就資料不完整而已? @@ 208.29.54.91 03/14 22:54
13F:→ firejox:他們都屬於data structure啊 ..... 210.60.107.233 03/15 18:43
14F:→ Lordaeron:定義就在哪,請自己看.118.168.236.204 03/16 00:45
15F:推 arcred:丟個網站就斬釘截鐵說定義是你想的那樣, 別 208.29.54.91 03/16 02:44
16F:→ arcred:人的話聽不進去, 只能說: 你高興就好 -o- 208.29.54.91 03/16 02:44
17F:→ Lordaeron:你最好比哪個網站的說明還要強囉. 1.161.212.24 03/16 21:01
18F:→ adrianshum:@arcred:如果有看過某人以前做的討論, 61.238.156.185 03/17 15:45
19F:→ adrianshum:你會發覺這是常態. 所以我也懶得再說下 61.238.156.185 03/17 15:46
20F:→ adrianshum:去了 XD 放輕鬆就好. 61.238.156.185 03/17 15:46
21F:→ firejox:網站也是人寫的啊 210.60.107.233 03/17 17:07
22F:→ firejox:又不是一定絕對的 210.60.107.233 03/17 17:49
23F:→ Lordaeron:當然不絕對, 因為你連基本的什麼叫定義220.136.226.179 03/17 20:20
24F:→ Lordaeron:都不知道, 更別說哪個網站是幹嘛的220.136.226.179 03/17 20:21
25F:→ Lordaeron:而adrianshum的常態就是打嘴砲打了就跑220.136.226.179 03/17 20:22
26F:→ Lordaeron:如果對定義有問題,請你拿出你手邊的220.136.226.179 03/17 20:22
27F:→ Lordaeron:DS/algorithm 的書來看.220.136.226.179 03/17 20:22
28F:→ Lordaeron:還是你比較強,自己定義出自己的stack220.136.226.179 03/17 20:24
29F:→ Lordaeron:和linklist像adrianshum哪樣來玩文字220.136.226.179 03/17 20:25
30F:→ Lordaeron:哪就沒什麼好討論的了,因為你爽就好了220.136.226.179 03/17 20:25
31F:→ firejox:我覺得定義只是最簡單的部份123.240.128.241 03/19 00:55
32F:→ firejox:因為不能再簡化了,而延伸的是他的性質123.240.128.241 03/19 00:56
33F:→ firejox:有很多的操作都是由性質延伸的123.240.128.241 03/19 00:57
34F:→ firejox:所以我頂多只能對他描述罷了123.240.128.241 03/19 01:00
35F:→ firejox:重定義沒有意義阿123.240.128.241 03/19 01:01
36F:→ firejox:array+stack湊一湊就很像vector了123.240.128.241 03/19 01:04
37F:→ firejox:因為用了性質去處理就有辦法達到123.240.128.241 03/19 01:05
38F:→ Lordaeron:看來你是沒有數學觀念,更像沒學過DS的人 1.161.197.54 03/19 14:48
39F:→ Lordaeron:哪樣,現在連vector 都跑出來了. 1.161.197.54 03/19 14:48
40F:→ Lordaeron:如果真的沒學過DS,請你去好好的學吧 1.161.197.54 03/19 14:50
41F:→ Lordaeron:不要再硬拗了,現在stack,LinkedList都 1.161.197.54 03/19 14:52
42F:→ Lordaeron:是早就有人定義好的了,是你們愛拗說 1.161.197.54 03/19 14:53
43F:→ Lordaeron:哪只是一個介面,B-Tree也是一個array的 1.161.197.54 03/19 14:54
44F:→ Lordaeron:這種爛文字遊戲,又是誰在這自high呢? 1.161.197.54 03/19 14:54
45F:→ Lordaeron:你們有讀過B-tree 的定義?還是你愛叫 1.161.197.54 03/19 14:55
46F:→ Lordaeron:它是B-Tree 它就是? 1.161.197.54 03/19 14:55
47F:→ firejox:我只是說"很像" 並沒有說"相等"123.240.128.241 03/19 15:17
48F:→ firejox:性質相似並不是本質一樣123.240.128.241 03/19 15:18
49F:→ firejox:打個比方 如果要把三角形相似說成全等123.240.128.241 03/19 15:42
50F:→ firejox:我只能無言了123.240.128.241 03/19 15:43
51F:→ Lordaeron:你真的無言就好了,因為只有你的DS中有118.160.168.253 03/20 09:11
52F:→ Lordaeron:Vector 這個東西,你還是回去看書吧118.160.168.253 03/20 09:11
53F:→ firejox:我愈來愈覺得談話是處於平行的狀態下123.240.128.241 03/20 19:12
54F:→ firejox:我覺得你還沒聽懂我說的話,完全誤會了我123.240.128.241 03/20 19:31
55F:→ firejox:的意思123.240.128.241 03/20 19:31
56F:→ firejox:我沒有在玩文字遊戲,這種只是簡單的邏輯123.240.128.241 03/20 19:33
57F:→ firejox:而已123.240.128.241 03/20 19:33
58F:→ Lordaeron:你的簡單的邏輯就是,你沒去讀DS 的書 118.160.172.44 03/21 07:10
59F:→ Lordaeron:還在這拗,你還是回去讀書吧 118.160.172.44 03/21 07:10
60F:→ Lordaeron:連什麼是定義都沒搞清楚,書也不見, 就在 118.160.172.44 03/21 07:14
61F:→ Lordaeron:扯,網站是人寫的, 又不一定 118.160.172.44 03/21 07:14
62F:→ Lordaeron:又說什麼延申性質. 118.160.172.44 03/21 07:15
63F:→ wfgh:看了一整串下來 只覺得Lord大沒有接受別人看220.131.139.250 04/03 13:16
64F:→ wfgh:法的心態 人家強調是思考過程 唉 死讀書的腦220.131.139.250 04/03 13:17







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