21xrx.com
2024-12-22 21:36:35 Sunday
登录
文章检索 我的文章 写文章
C++中的双向链表——list
2023-07-05 04:37:05 深夜i     --     --
C++ 双向链表 list 数据结构 链表操作

C++中的双向链表是一种常见的数据结构,又称做list。它与普通链表不同的是,每个节点在存储数据的同时,还存储了前驱节点和后继节点的地址。这使得节点的插入和删除等操作更为高效。

在C++中,STL库提供了list的实现,我们可以使用# include 来引入相关的头文件。list是一个模板类,可以存储任意类型的数据。要创建一个list对象,我们可以使用以下语句:


list<int> L;

此时,我们创建了一个存储整型数据的list。在C++11以后的版本中,我们还可以使用auto进行简化:


auto L = list<int>();

现在,我们可以使用各种方法来操作list中的数据了。比如,要在list的最后面添加一个元素,我们可以使用push_back()方法:


L.push_back(10);  // 在list的最后面添加一个元素10

同样的,如果我们要在最前面添加元素,可以使用push_front()方法:


L.push_front(20); // 在list的最前面添加一个元素20

删除list中的元素也很方便,例如我们可以使用pop_back()方法删除最后一个元素:


L.pop_back();   // 删除最后一个元素

list还支持迭代器访问,因此我们可以使用迭代器遍历整个list。以下是一个简单的示例代码:


#include <iostream>

#include <list>

using namespace std;

int main()

{

  list<int> L;

  L.push_back(10);

  L.push_front(20);

  L.push_back(30);

  for(auto it = L.begin(); it != L.end(); ++it)

  {

    cout << *it << " ";

  }

  return 0;

}

在这个示例代码中,我们通过for循环遍历了整个list,并依次输出了每个元素。需要注意的是,在输出时我们通过迭代器it访问了list中的元素,并使用*it来获取元素的值。

总之,C++中的list是一个很有用的数据结构,适用于很多场景。除了前面提到的几个方法外,list还支持很多其他的操作,例如可以使用insert()方法来插入元素,使用erase()方法来删除元素等等。如果需要了解更多关于list的内容,建议参考相关的文献和资料。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复