使用STL中的list容器實現單鏈表的操作


#include<iostream> #include<list> #include<algorithm> using namespace std; void Print(int &item) { cout<<item<<" "; } int main() { list<int> listintegers; list<int>::iterator listiter; //引入迭代器 //------------頭插法插入元素------------- listintegers.push_front(5); listintegers.push_front(3); listintegers.push_front(1); listintegers.push_front(2); listintegers.push_front(4); //----------尾插法插入元素---------- listintegers.push_back(6); listintegers.push_back(8); listintegers.push_back(7); //--------使用list的成員函數insert()插入元素到鏈表中 listintegers.insert(listintegers.end(),10); listintegers.insert(listintegers.end(),9); //----------利用迭代器輸出鏈表----------- /* 我們在每一個算法中都使用一個或多個iterator。

我們使用它們來存取容器中的對象。 要存取一個給定的對象,我們把一個iterator指向它,然后間接引用這個iterator */ cout<<"鏈表為:"; for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; //-------利用STL通用算法for_each()輸出鏈表--------------- /* Print是個函數,實現對象的輸出功能 */ cout<<"鏈表為:"; std::for_each(listintegers.begin(),listintegers.end(),Print); cout<<endl; //------利用STL通用算法find()推斷鏈表中是否存在某元素---------- listiter=find(listintegers.begin(),listintegers.end(),6); if(listiter==listintegers.end()) { cout<<"6 is not in list"<<endl; } else { cout<<"6 is in list"<<endl; } //-------利用STL通用算法search()推斷鏈表中是否存在某個序列------- list<int> targetlist; targetlist.push_front(2); targetlist.push_front(1); //定義該序列為12 listiter=search(listintegers.begin(),listintegers.end(),targetlist.begin(),targetlist.end()); if(listiter==listintegers.end()) { cout<<"序列12 is not in list"<<endl; } else { cout<<"序列12 is in list"<<endl; } //使用list的成員函數sort()對鏈表進行排序 cout<<"排序后,鏈表為:"; listintegers.sort(); for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; //使用list的成員函數remove()刪除鏈表元素 listintegers.remove(8); cout<<"刪除8后,鏈表為:"; for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; //----------使用list成員函數pop_front刪除鏈首元素---------- listintegers.pop_front(); cout<<"刪除鏈首元素后。鏈表為:"; for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; //----------使用list成員函數pop_back刪除鏈尾元素---------- listintegers.pop_back(); cout<<"刪除鏈尾元素后,鏈表為:"; for(listiter=listintegers.begin();listiter!=listintegers.end();listiter++) { cout<<*listiter<<" "; } cout<<endl; system("pause"); return 0; }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM