无向图的遍历


****1.DFS  2.BFS  3.退出****
输入你的选择
1
输入图的点数和边数
3 3
输入图的点
1 2 3
依次输入边的两个端点
0 1
0 2
1 2
输入想要遍历的起点
0
广度优先遍历为:1 2 3
输入你的选择
2
输入图的点数和边数
3 3
输入图的点
1 2 3
依次输入边的两个端点
0 1
0 2
1 2
输入想要遍历的起点
1
深度优先遍历为:2 1 3
输入你的选择
3
退出程序
*/

#include
#include
using namespace std;
const int maxsize=100;
bool visited[maxsize];
template 
class grahf
{
    public:
        grahf(Datatype a[],int n,int e);
        ~grahf();
        void BFS(int v);
        void DFS(int v);
    private:
        int bianshu,dianshu;
        int bian[maxsize][maxsize];
        Datatype dian[maxsize];
};
template 
grahf ::~grahf()
{
    dianshu=0;
    bianshu=0;
}
template 
grahf ::grahf(Datatype a[],int n,int e)
{
    int i,j,k;
    dianshu=n;
    bianshu=e;
    for(i=0;i>i>>j;
        bian[i][j]=1;
        bian[j][i]=1;
    }
}
template 
void grahf ::DFS(int v)
{
    int y;
    cout<
void grahf ::BFS(int v)
{
    Datatype Q[maxsize];
    int front1=-1,rear=-1;
    cout<>x;
        if(x==1)
        {
            int a[maxsize];
            int o;//点数
            int k;//边数
            cout<<"输入图的点数和边数"<>o>>k;
            cout<<"输入图的点"<>a[i];
            }
            grahf  G(a,o,k);
            cout<<"输入想要遍历的起点"<>y;
            cout<<"广度优先遍历为:";
            G.DFS(y);
            cout<>o>>k;
            cout<<"输入图的点"<>a[i];
            }
            grahf  G(a,o,k);
            cout<<"输入想要遍历的起点"<>y;
            cout<<"深度优先遍历为:";
            G.BFS(y);
            cout<

你可能感兴趣的:(模板)