天天看點

資料結構——哨兵

1、哨兵的定義

哨兵,是用來簡化邊界條件的一個參數,可以減少循環中的判斷,使代碼更加高效

在連結清單中,哨兵可以作為一個頭節點(稱為哨兵節點),為了操作的友善而引入

簡單來說,哨兵是在循環或疊代算法中用來标志終止條件的值

2、哨兵的代碼實作

int SequentialSearch(List Tb1, ElemType K){        //在Elem[1]~Elem[n]中查找關鍵字為K的資料元素
    int i;
    Tb1->Elem[0] = K;        //使其第一項為K,作為哨兵
    for(i = Tb1->Length; Tb1->Elem[i] != K; i--)
    {
        //查找資料為K的一項
    }
    return i;        //如果成功,傳回下标,不成功傳回0
}           

3、哨兵的應用

簡化邊界條件的處理,免去了查找過程中每次比較後都要判斷查找位置的複雜判斷

繼續閱讀