C/C++ list链表的理解以及使用
今天我们来一起深入学习一下非常重要以及基础的数据结构——链表(list)链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。
1.C++ 中 list 的介绍
list 是顺序容器的一种。list 是一个双向链表。使用 list 需要包含头文件 list。双向链表的每个元素中都有一个指针指向后一个元素,也有一个指针指向前一个元素,如图1所示。
在 list 容器中,在已经定位到要增删元素的位置的情况下,增删元素能在常数时间内完成。如图2所示,在 ai 和 ai+1 之间插入一个元素,只需要修改 ai 和 ai+1 中的指针即可。
list 容器不支持根据下标随机存取元素。
2.list的使用
STL里自带的list是双向链表
头文件: <list>
list<int> a;:定义一个int类型的链表a。
Int arr={1,2,3}; list<int> a(arr,arr+3);:从数组arr中的前三个元素作为链表a的初始值。
a.size():返回链表的结点数量。
list<int>::iterator it;:链表定义一个名为it的迭代器(指针)。
a.begin();a.edn();:链表开始和末尾的迭代器指针。
it++; it--;:迭代器指向前一个和后一个元素。
a.push_front(x); a.push_back(x);:在链表开头或者末尾插入x。
a.insert(it,x):在迭代器it的前面插入元素x。
a.pop_front(); a.pop)back();:在删除链表开头或者末尾。
a.erase(it):删除迭代器it所在的元素。
for(it=a.begin();it!=a.end();it++):遍历链表
————————————————
武汉兰树网络科技有限公司
www.ls-idc.com
QQ:775260000
TG:@lsidc
落伍者创建于2001/03/14, 本站内容均为会员发表,并不代表落伍立场! 还有技术贴啊
页:
[1]