⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qq.txt

📁 通讯录的制作 很好用的 希望对大家有用
💻 TXT
字号:
#include "stdafx.h"
#include <iostream.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX 20

typedef struct ArcNode
{
 int adjvex;    //弧邻接的顶点
 char info;     //弧相关信息
 struct ArcNode *nextarc;   //指向下一条弧的指针
}ArcNode;
typedef struct Vnode
{
 char data;     //结点信息
 ArcNode *link;    //指向第一个和该顶点相连的弧
}Vonde,AdjList[MAX+1];
//图结构体
typedef struct
{
 AdjList vertices;
 int vexnum;   //顶点
 int arcnum;    //边数
}ALGraph;

void CreateGraph(ALGraph &G)
{
 int i,j,s,d;
 ArcNode *p;
 //输入结点信息
 for(i=1;i<=G.vexnum;i++)
 {
  getchar();
  printf("第%d个结点信息(char型):",i);
  scanf("%c",&G.vertices[i].data);
  G.vertices[i].link=NULL;
 }
 //输入边的信息
 for(i=1;i<=G.arcnum;i++)
 {
  printf("第%d条----起点序号,终点序号:",i);
  scanf("%d%d",&s,&d);
  p=(ArcNode*)malloc(sizeof(ArcNode));
  p->adjvex=d;
  p->info=G.vertices[d].data;    //存储边的权值等信息,此处以顶点数据代替
  p->nextarc=G.vertices[s].link;   //p插入顶点S的邻接表中
  G.vertices[s].link=p;
 }
}
 //深度遍历的算法实现
 void DFS(AdjList g,int v,int visited[])
 {
  ArcNode *w;
  int i;
  printf("%d",v);
  visited[v]=1;
  w=g[v].link;
  while(w!=NULL)
  {
   i=w->adjvex;
   if(visited[i]==0)
    DFS(g,i,visited);
   w=w->nextarc;
  }
 }
 //广度优先遍历图的算法实现
void bfs(AdjList g,int v, int visited[])
 {
  int qu[MAX],f=0,r=0;
  ArcNode *p;
  printf("%d",v);
  qu[0]=v;
  while(f<=r)
  {
   v=qu[f++];
   if(visited[v]==0)
   {
    v=p->adjvex;
    if (visited[v]==0)
    {
     visited[v]=1;
     printf("%d",v);
     qu[++r]=v;
    }
    p=p->nextarc;
   }
  }
 }
   void Traver(AdjList g,int n,int id)
 {
  int i;
  static int visited[MAX];
  for(i=1;i<=n;i++)
   visited[i]=0;
  for(i=1;i<=n;i++)
   if(visited[i]==0)
   {
    if(id==1)  DFS(g,i,visited);
    if(id==2)   DFS(g,i,visited);
   }
 }
int main(int argc, char* argv[])
{
        ALGraph G;
  int id;
  printf("输入结点数和边数:");
   scanf("%d%d",&G.vexnum,&G.arcnum);
  CreateGraph(G);
        printf("选择深度遍历或者广度遍历:(1 DFS,2 BFS)");
  scanf("%d",&id);
  Traver(G.vertices,G.vexnum,id);

 return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -