无向图的深度优先遍历和广度优先遍历(递归)


无向图的深度优先遍历和广度优先遍历(递归)


queue.h

源代码

注释:包括队列数据类型的定义和相关操作

(出队,入队,判断队空,判断队列中是否存在某元素)

int searchQ(LinkQueue &Q,int s)

函数的作用:在将邻接顶点放入队列之前需要先判断队     列中是否已存在此元素,通过查找避免队列中有重复元素。

#include <iostream>

#include <cstdio>

#include <cstdlib>

#include "queen.h"

using namespace std;

//

李艳娟实验指导书版本改编,文档在‘文档’文件夹中

//

无向无权图


---DFS , BFS

#ifndef QUEEN_H_INCLUDED

#define QUEEN_H_INCLUDED

typedef struct Qnode{       //

链队结点的类型

int data;

struct Qnode *next;

}Qnode,*QueuePtr;

typedef struct

{         //

链队指针类型

QueuePtr front;

QueuePtr rear;

}LinkQueue;

void InitQueue(LinkQueue &Q)

{

Q.front=Q.rear=(QueuePtr)malloc(sizeof(Qnode));

if(!Q.front) exit(1); //

存储分配失败

Q.front->next=NULL;

}

void EnQueue(LinkQueue &Q,int e)

{ QueuePtr p;

p=(QueuePtr)malloc(sizeof(Qnode));

p->data=e;

p->next=NULL;

Q.rear->next=p;

Q.rear=p;

}

int QueueEmpty(LinkQueue &Q)

{



版权声明:本文为Heated_Youth原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>