您的位置:首页 > 编程语言 > C语言/C++

链表 c++

2020-01-15 12:02 1636 查看

c++可以不用自己定义链表,可以引用头文件

创建一个装int的链表 list lst;

创建链表,并输出

list<int> lst;
lst.push_back(124);
lst.push_back(125);
lst.push_back(126);
list<int>::iterator a = lst.begin();
while (a != lst.end())
{
cout << *a << " " ;
a++;
}

lst.end() 代表空.

便利链表可以用算法的头文件来便利。
#include
for_each(lst.begin(),lst.end(),&Show);
从什么地方,到什么地方,做什么操作

#include <iostream>
#include <list>
#include <algorithm>

using namespace std;

void Show(int a)
{
cout << a << " ";
}

int main()
{
list<int> lst;
lst.push_back(124);
lst.push_back(125);
lst.push_back(126);
lst.push_back(100);
list<int>::iterator a = lst.begin();
while (a != lst.end())
{
cout << *a << " " ;
a++;
}
cout << endl;

for_each(lst.begin(),lst.end(),&Show);
cout << endl;

lst.push_back(124);       //插入尾结点
lst.push_front(122);       //插入头结点
for_each(lst.begin(),lst.end(),&Show);
cout << endl;

lst.pop_back();         //删除
lst.pop_front();
for_each(lst.begin(),lst.end(),&Show);
cout << endl;

list<int>::iterator b = ::find(lst.begin(),lst.end(),125);   //查找
lst.insert(b,100);                                           //在b位置的前面插入一个100
for_each(lst.begin(),lst.end(),&Show);
cout << endl;

list<int>::iterator c = ::find(lst.begin(),lst.end(),100);   //查找
lst.erase(c);                                     //指定位置的删除
for_each(lst.begin(),lst.end(),&Show);
cout << endl;

if(lst.empty() == false)
cout << "不为空" << endl;
cout << lst.size() << endl;
lst.clear();
if(lst.empty() == true)
cout << "为空" << endl;
cout << lst.size() << endl;

return 0;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
William 壹 发布了103 篇原创文章 · 获赞 8 · 访问量 3384 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: