µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

ʵÑé Îå ͼµÄ±éÀú¼°ÆäÓ¦ÓÃʵÏÖ

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/10/28 19:04:12 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

ʵÑé Îå ͼµÄ±éÀú¼°ÆäÓ¦ÓÃʵÏÖ

Ò»¡¢ÊµÑéÄ¿µÄ

1£®ÊìϤͼ³£ÓõĴ洢½á¹¹¡£

2£®ÕÆÎÕÔÚͼµÄÁÚ½Ó¾ØÕóºÍÁÚ½Ó±íÁ½ÖֽṹÉÏʵÏÖͼµÄÁ½ÖÖ±éÀú·½·¨ÊµÏÖ¡£ 3£®»áÓÃͼµÄ±éÀú½â¾ö¼òµ¥µÄʵ¼ÊÎÊÌâ¡£

¶þ¡¢ÊµÑéÄÚÈÝ

´Ó¼üÅÌÉÏÊäÈëͼµÄ¶¥µãºÍ±ßµÄÐÅÏ¢,½¨Á¢Í¼µÄÁÚ½Ó±í´æ´¢½á¹¹,È»ºóÒÔÉî¶ÈÓÅÏÈËÑË÷ºÍ¹ã¶ÈÓÅÏÈËÑË÷±éÀú¸Ãͼ,²¢Êä³öÆð¶ÔÓ¦µÄ±éÀúÐòÁÐ. ÊÔÉè¼Æ³ÌÐòʵÏÖÉÏÊöͼµÄÀàÐͶ¨ÒåºÍ»ù±¾²Ù×÷,Íê³ÉÉÏÊö¹¦ÄÜ¡£¸Ã³ÌÐò°üÀ¨Í¼ÀàÐÍÒÔ¼°Ã¿Ò»ÖÖ²Ù×÷µÄ¾ßÌåµÄº¯Êý¶¨ÒåºÍÖ÷º¯Êý

1 2 5 3 4 Ïà¹Ø³£Á¿¼°½á¹¹¶¨Ò壺

typedef int InfoType; typedef int QElemType; typedef char VertexType; #define MAX_VERTEX_NUM 20 #define MAXQSIZE 100 typedef struct ArcNode {

int adjvex; //¸Ã»¡ËùÖ¸ÏòµÄ¶¥µãµÄλÖà struct ArcNode *nextarc; //Ö¸ÏòÏÂÒ»Ìõ»¡µÄÖ¸Õë InfoType *info; //¸Ã»¡Ïà¹ØÐÅÏ¢µÄÖ¸Õë }ArcNode;

typedef struct VNode {

VertexType data; //¶¥µãÐÅÏ¢

struct ArcNode *firstarc; //Ö¸ÏòµÚÒ»ÌõÒÀ¸½¸Ã¶¥µãµÄ»¡µÄÖ¸

Õë

}VNode,AdjList[MAX_VERTEX_NUM];

typedef struct { AdjList vertices;

int vexnum, arcnum; //ͼµÄµ±Ç°¶¥µãºÍ»¡Êý

int kind; //ͼµÄÖÖÀà±êÖ¾ }ALGraph;

typedef struct Queue {

QElemType *base; int front; int rear; }Queue;

Éè¼ÆÏà¹Øº¯ÊýÉùÃ÷£º

int LocateVex(ALGraph &G, char &v)

ͼµÄÁÚ½Ó±í´´½¨£ºvoid CreateGraph(ALGraph &G)

Éî¶ÈÓÅÏÈËÑË÷£ºvoid DFS(ALGraph &G,int v,int *visited)

void DFSTraverse(ALGraph &G)

¹ã¶ÈÓÅÏÈËÑË÷£ºvoid BFSTraverse(ALGraph &G) ¶ÓÁУºint InitQueue(Queue &Q)

int EnQueue(Queue &Q,QElemType e) int DeQueue(Queue &Q,QElemType &e) int QueueEmpty(Queue &Q)

Èý¡¢Êý¾Ý½á¹¹ÓëºËÐÄËã·¨µÄÉè¼ÆÃèÊö

1.¶¨Î»

int LocateVex(ALGraph &G, char &v) {

int m;

for(m=0; m

if(G.vertices[m].data==v) return m; }

2.ͼµÄ´´½¨

void CreateGraph(ALGraph &G) {

int i=0,j=0,k;

cout<<\ÇëÊäÈë¶¥µãµÄÊýÄ¿±ßµÃÊýÄ¿ \ cin>>G.vexnum>>G.arcnum;

cout<<\ÇëÒÀ´ÎÊäÈë¸÷¶¥µãµÄÖµ£º\ for(i=0;i

cin>>G.vertices[i].data;

G.vertices[i].firstarc=NULL; }

char sv,tv;

cout<<\ÇëÒÀ´ÎÊäÈë¸÷±ßµÄʼµãºÍÖյ㣺\ for (k=0; k

cout<<\ÇëÊäÈëµÚ\Ìõ±ßµÄʼµã£º\ cin>>sv;

cout<<\ÇëÊäÈëµÚ\Ìõ±ßµÄÖյ㣺\ cin>>tv;

i=LocateVex(G, sv);

cout<<\ÇëÊäÈëµÚ\Ìõ±ßµÄʼµãµÄλÖãº\ j=LocateVex(G, tv);

cout<<\ÇëÊäÈëµÚ\Ìõ±ßµÄÖÕµãµÄλÖãº\ ArcNode *p;

p=(ArcNode *)malloc(sizeof(ArcNode)); if(!p) {

cout<<\ }

p->adjvex=j;

p->nextarc=G.vertices[i].firstarc; p->info=NULL;

G.vertices[i].firstarc=p;

if(G.vertices[i].firstarc==NULL) cout<<\ } }

2.Éî¶ÈÓÅÏÈËÑË÷

void DFS(ALGraph &G,int v,int *visited) {

int w; char z;

visited[v]=1;

cout<

for(z=G.vertices[v].data;G.vertices[v].firstarc!=NULL; w=G.vertices[v].firstarc->adjvex,

G.vertices[v].firstarc=G.vertices[v].firstarc->nextarc) if(visited[v]==0)

DFS(G,w,visited); }

void DFSTraverse(ALGraph &G) {

int v;

int visited[MAX_VERTEX_NUM]; for (v=0; v

for (v=0; v

DFS(G,v,visited); }

3.³õʼ»¯¶ÓÁÐ

int InitQueue(Queue &Q) {

Q.base=(QElemType *)malloc(MAXQSIZE*sizeof(QElemType)); if(!Q.base) {

cout<

Q.front=Q.rear=0; return 1; }

4.Èë¶Ó

ËÑË÷¸ü¶à¹ØÓÚ£º ʵÑé Îå ͼµÄ±éÀú¼°ÆäÓ¦ÓÃʵÏÖ µÄÎĵµ
ʵÑé Îå ͼµÄ±éÀú¼°ÆäÓ¦ÓÃʵÏÖ.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c4xjoo43pd42xzhu2l5d1_1.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top