- /*
- 熟悉链表的库函数操作:创建链表,插入元素,删除元素,查找元素,为链表排序 遍历元素 掌握其使用
- 这里用模板实现
- */
- #include <iostream>
- #include <list> //链表头文件
- #include <algorithm> //find函数头文件
- using namespace std;
- int main()
- {
- list<int> L;
- list<int>::iterator it;
- //插入元素 输出
- int i=0,n; //插入数量
- int num;
- cout<<"输入要插入元素的个数:";
- cin>>n;
- cout<<"输入"<<n<<"个元素:"<<endl;
- while (i<n)
- {
- cin>>num;
- L.push_back(num); //重尾部插入元素 这样可以保证元素的顺序正确
- i++;
- }
- //输出
- for (it=L.begin(); it!=L.end(); it++)
- {
- cout<<*it<<" ";
- }
- cout<<endl;
- //查找元素
- int searh;
- cout<<"输入要找的元素:";
- cin>>searh;
- it = find(L.begin(), L.end(), searh);
- if (it!=L.end())
- {
- cout<<searh<<"查找成功"<<endl;
- }
- else
- {
- cout<<"查找失败"<<endl;
- }
- //排序
- L.sort();
- //输出
- cout<<"排好序后的元素为:"<<endl;
- for (it=L.begin(); it!=L.end(); it++)
- {
- cout<<*it<<" ";
- }
- cout<<endl;
- //删除元素
- int k = 0;
- int de;
- cout<<"输入要删除第几个元素:";
- cin>>de;
- while (k!=de)
- {
- it++;
- k++;
- }
- L.erase(it); //删除元素 remove函数也行,相同元素一起删除
- cout<<"删除后的元素为:"<<endl;
- for (it=L.begin(); it!=L.end(); it++)
- {
- cout<<*it<<" ";
- }
- cout<<endl;
- //插入元素
- int inser,m,h=0;
- cout<<"输入要插入的元素:";
- cin>>inser;
- cout<<"输入要插入的位置:";
- cin>>m;
- while (h!=m)
- {
- it++;
- h++;
- }
- //插入元素
- L.insert(it, inser); //在it位置插入num
- cout<<"插入后的元素为:"<<endl;
- for (it=L.begin(); it!=L.end(); it++)
- {
- cout<<*it<<" ";
- }
- cout<<endl;
- system("pause");
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/251220138236.html
来源: http://www.codesnippet.cn/detail/251220138236.html