//迴圈鍊錶
template class circlelist;
template class circlelistiterator;
/*節點類circlelistnode*/
template class circlelistnode
;//預設的建構函式
} ;/*迴圈鍊錶類circlelist*/
template class circlelist
; void insert(type);//鍊錶插入節點函式
void delete(type);//鍊錶刪除節點函式
private:
circlelistnode*first;//頭指標
};/**迴圈鍊錶迭代器也是乙個類*/
template class circlelistiterator
;//建構函式有個引數->鍊錶。l.first->link:因為first是空的
bool notnull();//判斷鍊錶迭代器所指向的煉表裡的當前節點是不是空的函式
bool nextnotnull();//判斷當前節點的下乙個節點是不是空的函式
type *first();//返回鍊錶的第乙個節點的指標函式
type *next();//返回鍊錶當前節點下乙個節點的指標函式
private:
const circlelist&circlelist;//鍊錶。這個迭代器listiterator就是這個迴圈鍊錶circlelist的迭代器
circlelistnode*current;//私有的資料成員,指標current
};/*迭代器函式:判斷鍊錶迭代器所指向的煉表裡的當前節點是不是空的*/
template bool circlelistiterator::notnull()
return false;
}template bool circlelistiterator::nextnotnull()
return false;
}/*迭代器函式:返回鍊錶的第乙個節點的指標函式*/
template type *circlelistiterator::first()
return 0;
}template type *circlelistiterator::next()
return ¤t->data;
}/*listnode的建構函式*/
template circlelistnode::circlelistnode(type element)
/*鍊錶插入節點函式*/
template void circlelist::insert(type k)
/*鍊錶刪除節點函式*/
template void circlelist::delete(type k)
if(current != first)//不等於first表示找到了
}#endif // _circlelist_h
輸出結果:
迴圈鍊錶,雙向鍊錶
迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...
鍊錶之迴圈鍊錶
單向鍊錶 鍊錶之單向鍊錶 迴圈鍊錶是單向鍊錶的變化形式。單向鍊錶的尾部的指標域是空的,而迴圈鍊錶的尾部指標是指向鍊錶的頭結點的,其結構如圖一所示。圖 一循 環鏈表結 構圖一 迴圈鍊錶結構 圖一迴圈鍊錶 結構從上面結構可以看出,迴圈鍊錶的節點形成了乙個圈。在進行遍歷時,可以從任意節點開始。如果記錄了尾...
迴圈鍊錶企業鍊錶
一 特點 讓鍊錶的最後乙個結點的next指標指向頭結點。初始化小節點時直接讓next指標指向鍊錶的頭結點。二 include include include 小結點 typedef struct listnode listnode 鍊錶結點 typedef struct circularlist c...