[問題] 請問這段code
在維基百科binomial heap(http://en.wikipedia.org/wiki/Binomial_heap)
裡找到這份程式碼:
http://www.cs.unc.edu/~bbb/foss/binheaps/iheap.h (原版)
研究好幾個禮拜了還是好多地方不懂...
比方說__iheap_merge這個函數:(http://codepad.org/a9jTt5GE)←從原版節錄下來的
第8行到21行,是pos沿著a與b中degree較小的路徑走,走完之後再傳回一開始的
頭(head)。
1.a跟b兩個list都各自有各自的空間。pos沿著他們兩條走完,那pos "自己"有自己
占的空間嗎(他自己有實體?)還是pos是"虛擬的",只是沿著a和b走完而已。
2.第10行「*pos=a;」為什麼要用一顆星?而不是pos=a;?或pos=&a;?或**pos=a;?
每個指標變數都有三種可能:*ptr跟ptr跟&ptr,請問我在寫程式的時候要怎麼選?
指標基本概念我懂,雙重指標我也懂(指向指標的指標),但是看到這份應用我完全
不知怎麼理解。
3.第16行「pos = &(*pos)->next;」為什麼是這樣寫?等號右邊已經(*pos)->next了,
為什麼不用*pos=(*pos)->next;?或*pos=&(*pos)->next;?或之類的?
再補一個問題:
4.請問如果要實現這函數的功能,一定得用到雙重指標嗎?有可能只用單一指標就達
到相同的功能嗎?
為什麼指標編程這麼難QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.6.13.94
推
02/01 14:19, , 1F
02/01 14:19, 1F
→
02/01 14:19, , 2F
02/01 14:19, 2F
→
02/01 14:20, , 3F
02/01 14:20, 3F
→
02/01 14:23, , 4F
02/01 14:23, 4F
→
02/01 14:24, , 5F
02/01 14:24, 5F
→
02/01 14:26, , 6F
02/01 14:26, 6F
→
02/01 14:29, , 7F
02/01 14:29, 7F
※ 編輯: bil193 來自: 124.6.13.94 (02/01 14:31)
推
02/01 14:30, , 8F
02/01 14:30, 8F
→
02/01 14:31, , 9F
02/01 14:31, 9F
推
02/01 15:01, , 10F
02/01 15:01, 10F
→
02/01 15:01, , 11F
02/01 15:01, 11F
→
02/01 15:02, , 12F
02/01 15:02, 12F
→
02/01 15:03, , 13F
02/01 15:03, 13F
→
02/01 15:04, , 14F
02/01 15:04, 14F
→
02/01 15:04, , 15F
02/01 15:04, 15F
→
02/01 15:18, , 16F
02/01 15:18, 16F
→
02/01 16:28, , 17F
02/01 16:28, 17F
→
02/01 16:29, , 18F
02/01 16:29, 18F
→
02/01 16:30, , 19F
02/01 16:30, 19F
→
02/02 18:16, , 20F
02/02 18:16, 20F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章