12月7日

今天上午上了统一建模语言,然后去考了上篮,下午上了数据结构,然后复习了离散

7-1 邻接表存储实现图的深度优先遍历

 
#include<iostream>
#include<cstdio>
using namespace std;
struct edge{
        int v;
        edge* next;
};
struct node{
        char val;
        edge* next;
}a[1010];
int n;
int find(char ch){
        for(int i=0;i<n;i++){
                    if(a[i].val==ch){
                                    return i;
                    }
        }
        return -1;
}

void add(int u,int v){
        edge* e=new edge();
        e->next=a[u].next;
        e->v=v;
        a[u].next=e;
}

bool st[1010];
void dfs(int u){
        cout<<a[u].val<<' ';
        st[u]=1;
        edge* e=a[u].next;
        while(e!=NULL){
                    if(st[e->v]==0){
                                    dfs(e->v);
                    }
                    e=e->next;
        }
}

int main(){
        int m;
        cin>>n>>m;
        for(int i=0;i<n;i++){
                    char ch;
                    cin>>ch;
                    a[i].val=ch;
        }

        for(int i=0;i<m;i++){
                    char u,v;
                    cin>>u>>v;
            int uu=find(u),vv=find(v);
                    add(uu,vv);
                    add(vv,uu);
        }

        char ch;
        cin>>ch;
        int k;
        if((k=find(ch))!=-1){
                    dfs(k);
        }else{
                    cout<<"error";
        }
        return 0;
}

 


 
posted @ 2023-12-07 20:55  石铁生  阅读(19)  评论(0编辑  收藏  举报