民國110年 第2梯次 電腦軟體設計(C++)乙級 學科

第54題

從一個擁有n 個節點的鏈結串列刪除一個值為x 之節點,在最壞情況下所需時間複雜度為多少?

題目

從一個擁有n 個節點的鏈結串列刪除一個值為x 之節點,在最壞情況下所需時間複雜度為多少?

  1. (1) θ(n log n)
  2. (2) θ(log n)
  3. (3) θ(1)
  4. (4) θ(n)

官方答案

(4) θ(n)

解析

從含 n 個節點的鏈結串列刪除值為 x 的節點,需先從表頭逐一走訪比對,最壞情況該節點位於串列末端或不存在,必須檢查全部 n 個節點,搜尋時間 θ(n);找到後修改指標刪除僅需 θ(1)。整體由搜尋主導,故最壞情況時間複雜度為 θ(n)。選項 θ(1) 僅適用於已知節點位置,θ(log n)、θ(n log n) 不適用於線性串列,故選 4。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料