C++ 简单粗暴
思路:
1,已知头结点,利用对组pair,找pair.second的位置,然后插入pair.frist
2,找到最后一个数的位置,删除他
3,最后输出
#include <iostream>
#include <string>
#include <forward_list>//单项链表
#include <list>//双项链表
#include <algorithm>
using namespace std;
int main()
{
forward_list<int> lis1;
pair<int,int> T;
int lis_num,lis_head,lis_eas;
cin>>lis_num>>lis_head;
lis1.push_front(lis_head);
for(int i=0;i<lis_num-1;i++)//已知头结点,利用对组pair,找pair.second的位置,然后插入pair.frist
{
cin>>T.first>>T.second;
forward_list<int> :: iterator it=find(lis1.begin(),lis1.end(),T.second);
lis1.insert_after(it, T.first);
}
cin>>lis_eas;
forward_list<int> :: iterator es=find(lis1.begin(),lis1.end(),lis_eas); //找到最后一个数的位置,删除他
lis1.remove(*es);
for(forward_list<int> :: iterator la=lis1.begin();la!=lis1.end();la++)//最后输出
{
cout<<*la<<' ';
}
return 0;
}
京公网安备 11010502036488号