数据结构链表
数据结构
简单来说数据结构就是数据按照某种结构进行存储。
结构:线性、树状和图状等。
其中线性表分为:链表和顺序表。 链表:内存不一定连续(有可分为单链表、双向链表和循环链表),顺序链表:内存是连续的。
list(双向链表)
1. 添加元素 :
insert/push_back/push_front等。
2.删除元素:clear/erase/pop_back/pop_front/remove/remove_if等。
3.访问元素:back/front/begin/end/rbegin/rend等。
4. 链表定义的格式:
list<数据类型> 对象名;
6. 添加10个整型元素:
list<int> intlist;
for(int i=0;i<10;i++)
{intlist.push_back(i);}
8. 删除最后一个元素:
intlist.pop_back();
9. 访问第一个元素:
intlist.front();
13. 迭代器:
迭代器是一种对象,它能够用来遍历STL容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。
其格式:
数据类型::iterator 对象名
访问指向第一个元素的迭代器:begin; 例如:
list<int>::iterator itlist = intlist.begin();
访问指向最后一个元素的下一个元素的迭代器:end; 例如:
for(itlist=intlist.begin();itlist!=intlist.end();itlist++)
{
cout<<*itlist<<endl;
}
erase(参数:迭代器 返回值:指向被删除元素的下一个元素的迭代器); 删除一个元素。 例如:
for(itlist=intlist.begin();itlist!=intlist.end();)
{
if(*itlist%2==0)
{
//删除当前itlist指向的元素,并且itlist指向下一个元素
itlist=intlist.erase(itlist);
}else
{itlist++;}
}
14.循环语句:for/do…while/泛型for。
其中泛型for的语法:
for(数据类型 变量名:数组或者容器名)
{
循环体;
}
其特点:不允许在遍历的过程中添加元素或者删除元素。