鍊錶 04 迴圈鍊錶

2021-10-05 04:29:17 字數 1808 閱讀 9136

//迴圈鍊錶

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...