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

📄 emp7_07.cpp

📁 该包是数据结构的实验软件,来源于合肥工业大学人工智能与数据挖掘实验室,用来实现数据结构.
💻 CPP
字号:

#include"graph2.h"
datagraph g1;
   int v,i;
     boolean visited[30];
     struct 	queue
	  { int data[31];
	   int front,rear;
	};

   void  SetQueueNull(queue& q)
     { q.front=0;
       q.rear=0;
    }
   boolean QueueEmpty(queue& q)
    {boolean QueueEmpty=q.front==q.rear;
    return QueueEmpty;
    }
   void  EnQueue(queue& q,int x)
    {  if ( (q.rear+1)%30==q.front)
	   Error("Queue Overflow ");
       else
	    {
	    q.rear=(1+q.rear)%30;
	    q.data[q.rear]=x;
	    }
     }

   int OutQueue(queue& q)
     {  int   Outqueue;
	if (QueueEmpty(q) )
	   Error("No data in queue");
       else
	 { q.front=q.front+1;
	  Outqueue=q.data[q.front];
	}
       return    Outqueue;
    }
   void  bfsfrom(datagraph& g,int v)
    {int u,w,n;
     char ch;
     queue Q;


      SetQueueNull(Q);
      n=1;
      dispint_atgnode_angle(n,g1,v,270);
      visite_gnode(g,v,1);
      visited[v]=true;
      EnQueue(Q,v);
      while (!QueueEmpty(Q) )
	  {
	     u=OutQueue(Q);
	     w=firstadj(g,u);
	     while (w!=0)
	       {
		 if(!visited[w])
		 {    n=n+1;
		     dispint_atgnode_angle(n,g1,w,270);
		     copy_edge(g,u,w,g1);
		     display_edge(g1,u,w);
		     visite_gnode(g,w,1);
		     visited[w]=true;
		     EnQueue(Q,w);
		   }
		w=nextadj(g,u,w) ;
	      }
	}

   return;
}
      main()
      {


       load_graph_file(g,"graphs\\bfs.grp");
	  for( i=1;i<=nodes(g);i++)
	     visited[i]=false;
	  display_graph("原 图",g);
	  window(1,1,80,4);

	  copy_all_vertex(g,g1,300,0);
	  disp_graph("广度遍历生成树",g1);
	  bfsfrom(g,1);
	  getch();
	  exit(1);
   }

⌨️ 快捷键说明

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