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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

单项循环链表

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

單項循環鏈表

// // Created by 許加權 on 2021/7/12. //#ifndef C11LEARN_SINGLECYCLELINK_H #define C11LEARN_SINGLECYCLELINK_H #include "chapter10.h" template<typename T> class SingleCycleL { public:HalfNode<T> *Nil; public:SingleCycleL(){Nil = new HalfNode<T>();Nil->next = Nil;}SingleCycleL(const SingleCycleL<T> &l){Nil = new HalfNode<T>();Nil->next = Nil;copy(l);}const SingleCycleL<T>& operator = (const SingleCycleL<T> &l){clear();copy(l);return *this;}virtual ~SingleCycleL(){clear();if(Nil!= nullptr){delete Nil;Nil = nullptr;}}void clear(){HalfNode<T>* current = Nil->next;while (current != Nil){HalfNode<T>*node = current;current = current->next;delete node;}Nil->next = Nil;}void copy(const SingleCycleL<T> &l){HalfNode<T>* current = l.Nil->next;HalfNode<T>* current_self = Nil;while (current!= l.Nil){HalfNode<T> * node = new HalfNode<T>(current->key);current = current->next;current_self->next = node;current_self = node;}current_self->next = Nil;} }; template<typename T> void insert(SingleCycleL<T> & l,T key) {HalfNode<T> * t = new HalfNode<T>(key);t->next = l.Nil->next;l.Nil->next = t; } template<typename T> bool remove(SingleCycleL<T> & l,T key) {HalfNode<T> *pre = l.Nil;HalfNode<T> *current = l.Nil->next;while (current->key!=key){pre = current;current = current->next;}if(current != l.Nil){pre->next = current->next;delete current;return true;}return false; } template<typename T> HalfNode<T> search(SingleCycleL<T> & l,T key) {l.Nil->key = key;HalfNode<T> *current = l.Nil->next;while (current->key!=key){current = current->next;}return current; } #endif //C11LEARN_SINGLECYCLELINK_H

輔助類HalfNode鏈接

總結

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

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