日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

链表——哨兵

發布時間:2025/3/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链表——哨兵 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

沒有哨兵的鏈表:

ListSearch(L,k) {
  x = L.head;
  while(x!=null && x.key!=k)
    x = x.next;
  return x;
}

ListInsert(L,x){
  x.next = L.head;
  if(L.head!=null)
    L.head.pre = x
  L.head = x;
  x.prev = null;
}

ListDelete(L,x) {
  if(x.prev!=null)
    x.prev.next = x.next;
  else
    L.head = x.next;
  if(x.next!=null)
    x.next.prev = x.prev;
}

存在哨兵的鏈表:

L.nil便是鏈表的哨兵

ListSearch(L,k){
  x = L.nil.next;
  while(x!=L.nil&&x.key!=k)
    x = x.next;
  return x;
}

ListInsert(L,x){
  x.next = L.nil.next;
  L.nil.next.prev = x;
  L.nil.next = x;
  x.prev = L.nil;
}

ListDelete(L,x){
  x.prev.next = x.next;
  x.next.prev = x.prev;
}

?

哨兵基本不能降低數據結構相關操作的漸近時間界,但可以降低常數因子。

帶哨兵節點的鏈表,需要額外的一個節點,但插入和刪除等操作不需要額外的判斷;不帶哨兵節點,在處理鏈表為空時,和其他情況不一樣,需要單獨判斷一次。
帶哨兵節點的鏈表,插入或刪除時,不論操作的位置,表頭都不變,不需要額外的判斷;不帶哨兵節點的鏈表,插入或刪除操作發生在第一個節點時,表頭指針都要變化,需要額外的處理。

?

?

轉載于:https://www.cnblogs.com/lvcoding/p/7473224.html

總結

以上是生活随笔為你收集整理的链表——哨兵的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。