#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int nMax=1000;
class edge{
    public:
    int v,nex;
};edge e[nMax];
int n,k,head[nMax];      //head[i]是以点i为起点的链表头部
void addedge(int a,int b){                           //向图中加有向边的算法,注意加上的是有向边//b为a的后续节点既是a---->b
    e[k].v=b;
    e[k].nex=head[a];
    head[a]=k;
    k++;
}
int main(){
    int i,a,b,w,k=1;
    scanf("%d",&n);
    memset(head,0,sizeof(head));
    for(i=0;i<n;i++){
        scanf("%d%d",&a,&b);
        addedge(a,b);                                 //添加一条由a指向b的边
    }
    cin>>w;                                           //输出w点所指向的点
    for(i=head[w];i;i=e[i].nex){
        cout<<e[i].v<<endl;
    }
    cout<<"end\n";
    return 0;
}
posted on 2012-01-27 19:45  追逐.  阅读(265)  评论(0编辑  收藏  举报