快轉到主要內容

秀姑巒溪泛舟

·652 字·2 分鐘·
活動 花蓮 批兔

上週五六日跟高中同學出去玩,一行七人只有我是社畜,
所以我週五晚上 12 點多才去民宿跟大家會合。

週六去泛舟,人超多,教練(引擎)船們各種控場。
當天是小水位,船又大,根本翻不了,只會一直卡住,前進速度很慢。
為了讓活動如期結束,大部份的時間都是教練船後面拖一排船,大家在船上玩水看風景。
風景不錯,到出海口前仍如典型的東部峽谷,溪水縱切海岸山脈。
沿途不時有蝴蠂和小鳥,只差沒看到魚。(因為水濁,有也看不到。)

這個活動中我認為最有趣的是接船的部份,也就是從每船各自划變教練拖大家的過程。
基本上就是在接一個 singly linked list,中間斷掉的話就會 memory leak。
為什麼是 singly 呢?因為一但接了船,教練船就得一直動,免得節點隨機漂移而打結。
在引擎船的牽動下,逆向遍歷船鍊相當難,甚至想潑前船水都不容易。

這時身為碼農,就會想說 insert 應該是個 O(1) 的操作。
但實際採取的卻是 O(N) 的作法,原因有二:

  • 把船鬆開再接起容易出錯,萬一整條鍊斷掉,會非常混亂。
  • 接鍊尾的話,新船行近鍊上任一艘船,就能順著攀到鍊尾,教練可以少顧一點準度。

最後附上接船方法示意圖(早上畫錯了,更正一下):

  1. 兩個繩圈
  ╭船    船一口 口一船    船╮
  口船船船船        船船船船口
  1. 一圈套一圈
            口
            |
  ╭船    船一中
  口船船船船  └一船    船╮
               船船船船口
  1. 插支槳
          一毌一槳
            |
  ╭船    船一中
  口船船船船  └一船    船╮
               船船船船口
  1. 擺正
           槳
           |
  ╭船    船╮中一毌一船    船╮
  口船船船船╰十一╯  船船船船口
           |
  1. 拉緊
            槳
  ╭船    船一毌毌一船    船╮
  口船船船船  |   船船船船口
            |

--
※ 發信站: 批踢踢兔(ptt2.cc), 來自: xxx.xxx.xxx.xxx (臺灣)
Re: 我本來想把槳都用粗體,但|有沒有粗體在我的電腦上看是一樣的…