線性結構之習題選講-ReversingLinkedList

更新、更全的《數據結構與算法》的更新網站,更有python、go、人工智能教學等着你:http://www.javashuo.com/article/p-zfinzipt-hh.htmlpython

1、什麼是抽象的鏈表

  • 有塊地方存儲數據
  • 有塊地方存儲指針——下一個結點的地址

2、單鏈表的逆轉

/* c語言實現 */

Ptr Reverse(Ptr head, int K)
{
  cnt = 1;
  new = head->next;
  old = new->next;
  while (cnt < K) {
    tmp = old->next;
    old->next = new;
    new = old; old = tmp;
    cnt++;
  }
  head->next->next = old;
  return new;
}

取巧:用順序表存儲,先排序,再直接逆序輸出。算法

對上述取巧的解決方案:在內存裏多加幾個沒用的結點。數據結構

3、測試數據

pta測試中,這道題的測試數據主要關心一下幾點:測試

  • 有尾巴不反轉
  • 有多餘結點

3.1 邊界測試

  • 地址取到上下界
  • 正好全反轉
  • K=N全反轉
  • K=1不用反轉
  • 最大(最後剩K-1不反轉)、最小N
相關文章
相關標籤/搜索