[閒聊] linked list重要性

看板C_and_CPP作者時間7年前 (2016/12/07 23:40), 7年前編輯推噓6(6013)
留言19則, 8人參與, 最新討論串1/2 (看更多)
如題 這篇純閒聊,無學術交流,不喜者,現在就可以左轉了 最近在工作上遇到一些比較麻煩的問題 我要去檔案裡抓一些特定的資料,但是我不知道這些資料到底有多少 因此我沒辦法預先設定陣列大小或變數多寡 這時候就突然想到,以前老師教的,資料串結(linked list) 就大家常看到的struct XXX{}; 以前老師在教的時候,都不覺得這個有用 只覺得這到底要幹嘛,啊我用陣列就好啦!!! 結果現在超常用到...... 只能說,資料串結很有用,尤其面對未知的資料量時,整個大神的概念 就呼籲大家不要輕易放棄任何一種技術囉~~ 因為你不知道哪一年的哪一天你會用到它 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.55.135 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1481125247.A.D2C.html

12/07 23:45, , 1F
可以抽掉中間的資料我覺的比較重要
12/07 23:45, 1F
就不用預先知道在哪裡,只需要搜尋特定關鍵字就可以了 整個可以變成萬用程式阿

12/07 23:45, , 2F
純C的環境嗎?要不然STL超好用
12/07 23:45, 2F
是純C喔!! ※ 編輯: jacky1989 (61.231.55.135), 12/07/2016 23:47:01

12/07 23:53, , 3F
沒有要從中間插入,為什麼不動態宣告array?
12/07 23:53, 3F
因為就像你說的,有需要從中間插入的狀況,我讀的資料有可能不是連續性的 還有一個狀況,我不知道到底需要讀多少資料 這樣是不是也可以用動態陣列呢? ※ 編輯: jacky1989 (61.231.55.135), 12/07/2016 23:57:04

12/08 00:00, , 4F
我是很常用cicular linked list來作queue,很方便
12/08 00:00, 4F

12/08 00:01, , 5F
不知道size也可以動態宣告array。除非你要頻繁的從中間
12/08 00:01, 5F

12/08 00:02, , 6F
插入data,不然array(vector)會比list好很多
12/08 00:02, 6F
所以今天我有兩個檔案 第一個檔案要讀n筆資料 第二個檔案要讀m筆資料 我只知道每個資料的長度是20個byte,但是不知道n跟m為多少 我依然可以使用動態宣告來處理囉? ※ 編輯: jacky1989 (61.231.55.135), 12/08/2016 00:06:26

12/08 00:33, , 7F
你用list不也是要額外allocate memory
12/08 00:33, 7F

12/08 00:34, , 8F
vector只不過是allocate比較多的memory罷了
12/08 00:34, 8F
嗯.....我用List還有另一個用意 因為我的資料是一堆小資料的集合,我認為用結構來處理比較合適 不過C大的建議,我會去survey一下 如果有疑問,還請C大不吝指教,感謝 ※ 編輯: jacky1989 (61.231.55.135), 12/08/2016 00:35:29

12/08 00:37, , 9F
結構也可以用成 array 型式 @@
12/08 00:37, 9F

12/08 00:40, , 10F
要多一點效率就固定多要一點記憶體
12/08 00:40, 10F

12/08 00:42, , 11F
像STL的deque就是會固定多要一點(沒記錯的話
12/08 00:42, 11F

12/08 00:45, , 12F
MSVC與GCC的deque、vector都會allocate比要求的memory多
12/08 00:45, 12F

12/08 00:46, , 13F
說錯了,我說的是自動增長的情況,不是主動要求的情況
12/08 00:46, 13F

12/08 00:53, , 14F
allocate的量不一樣阿deque跟vector,增長的時候
12/08 00:53, 14F

12/08 01:02, , 15F
像是MMORPG,玩家跟怪物等都是用linked list來串連
12/08 01:02, 15F

12/08 01:27, , 16F
要是你寫 fp 語言你就會發現資料結構充滿整個程式…
12/08 01:27, 16F

12/08 01:28, , 17F
除了結構和函數之外沒有其他東西
12/08 01:28, 17F

12/08 13:12, , 18F
補充個,連 Int, Char 等等… 都是資料結構
12/08 13:12, 18F

12/08 13:12, , 19F
沒有 primitive type 這種東西
12/08 13:12, 19F
文章代碼(AID): #1OI2r_qi (C_and_CPP)
文章代碼(AID): #1OI2r_qi (C_and_CPP)