举个栗子
思路:我们把两个list链表分别存储非数字字符和数字字符,最后并入第三个链表
这里的合并其实就是插入
#include<iostream>
#include<list>
using namespace std;
int main()
{
string s;
cin>>s;//讨论数字和非数字字符的关系
list<char> s1,s2,s3;//两个链表分别存储非字符和字符的关系
list<char>::iterator it;//迭代器遍历
for(int i=0;i<s.length();++i)//遍历一遍
{
if(s[i]<='9'&&s[i]>='0')
{
s2.push_back(s[i]);// 放入s2
}
else
{
s1.push_back(s[i]);//放入s1;
}
}
for(it=s1.begin();it!=s1.end();++it)
{
s3.push_back(*it);
}
for(it=s2.begin();it!=s2.end();++it)
{
s3.push_back(*it);
}//s1与s2加入s3
for(it=s3.begin();it!=s3.end();++it)
{
cout<<*it;//输出
}
return 0;
}

ok,没问题,合并就是插入的思想,我们还可以将s2插入s1的末尾
