面向對象的數據結構--鏈 list

面向對象的數據結構–鏈 list
1.概述
鏈中一般帶有一個不存放任何元素的啞元素
分類:
單向(單鏈和單循環鏈)
雙向(雙鏈和雙循環鏈)
2.使用
訪問list中的元素需要使用迭代器(iterator),可用於list::iterator
插入元素

L.insert(iter,0);//在iter所指向的元素2之前插入0

替換元素

*iter=10;

刪除元素

iter=L.erase(iter);//不可刪除啞元素

iter還有常量迭代器list::const_iterator c_iter迭代器遍歷L中的所有元素並在屏幕上輸出

list<int>::const_iterator c_iter;
for(c_iter=L.cbegin();c_iter!=L.cend();++iter)
cout<<*c_iter<<'';

簡練形式

forauto c_iter=L.cbegin();c_iter!=L.cend();+=iter)
cout<<*citer<<'';

逆向迭代器和常量迭代器

//逆向迭代
forauto cr_iter=L.crbegin();cr_iter!=L.crend();++cr_iter)
cout<<*cr_iter<<endl;

預處理並計算特殊統計量

#include<list>
#include<iostream>

void InputandPreprocess(list<int> &L,int&MAX)
{
    L.clear();//清空L中的所有數據
    int data;
    cin>>data;
    MAX=data;
    while(data>=0)
    {
    L.push_back(data);
    if(data>MAX)
    max=data;
    cin>>data;//讀入數據
    }
}   

熟悉雙循環鏈

#include<iostream>
#include<vector>
#include<list>
using namespacen std;

int main()
{
    const size_t d=8;//學號8位
    const size_t W=3;//循環移位次數
    const size_t MAX=10;//最大迭代數
    vector<int> V(d);
    list<int> L;
    for(size_t i=0;i<d;i++)
    {
        cin>>V[i];
        L/push_back(V[i]);
    }
        auto iter=L.begin();
        size_t x=0;
        for(size_t i=0;i<MAX;i++)
        {
            for(size_t j=0;j<W;j++)
發佈了26 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章