面向对象的数据结构--链 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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章