#include "stdio.h"

typedef struct ArcNode{

/*单链表中的结点的类型*/

int adjvex; /*该边指向的顶点在顺序表中的位置*/

struct ArcNode *next; /*下一条边*/

}ArcNode;

typedef struct VNode{

/*顶点类型*/

int data; /*顶点中的数据信息*/

ArcNode *firstarc; /*指向单链表,即指向第一条边*/

}VNode;

int visited[5]={0,0,0,0,0};

CreatGraph(int n , VNode G[] ){

int i,e;

ArcNode *p , *q;

printf("Input the information of the vertex\n");

for(i=0;i

scanf("%d",&G[i]);

G[i].firstarc = NULL; /*初始化第一条边为空*/

}

for(i=0;i

printf("Creat the edges for the %dth vertex\n",i) ;

scanf("%d",&e);

while(e!=-1){

p = (ArcNode *)malloc(sizeof(ArcNode)); /*创建一条边*/

p->next = NULL;

p->adjvex = e;

if(G[i].firstarc == NULL) G[i].firstarc = p; /*i结点的第一条边*/

else q->next = p; /*下一条边*/

q = p;

scanf("%d",&e);

}

}

}

int FirstAdj(VNode G[],int v){

if(G[v].firstarc != NULL) return (G[v].firstarc)->adjvex;

return -1;

}

int NextAdj(VNode G[],int v){

ArcNode *p;

p = G[v].firstarc;

while( p!= NULL){

if(visited[p->adjvex]) p = p->next;

else return p->adjvex;

}

return -1;

}

void DFS(VNode G[],int v){

int w;

printf("%d ",G[v]); /*访问当前顶点,打印出该顶点中的数据信息*/

visited[v] = 1; /*将顶点v对应的访问标记置1*/

w = FirstAdj(G,v); /*找到顶点v的第一个邻接点,如果无邻接点,返回-1*/

while(w != -1){

if(visited[w] == 0) /*该顶点未被访问*/

DFS(G,w); /*递归地

进行深度优先搜索*/

w = NextAdj(G,v); /*找到顶点v的下一个邻接点,如果无邻接点,返回-1*/

}

}

main()

{

VNode G[5];

CreatGraph(5,G);

DFS(G,0);

getche();

}

算法c语言实现第6部分,妙趣横生算法C语言实现 (6)相关推荐

  1. 输入年输出属相编程c语言,妙趣横生的C语言.ppt

    <妙趣横生的C语言.ppt>由会员分享,可在线阅读,更多相关<妙趣横生的C语言.ppt(40页珍藏版)>请在装配图网上搜索. 1.妙趣横生的C语言,授课者: 赵 佳 授课班级: ...

  2. R语言plotly可视化:使用PCA算法进行数据降维、使用plotly可视化随着主成分的增加解释的方差的量(plotting explained variance)

    R语言plotly可视化:使用PCA算法进行数据降维.使用plotly可视化随着主成分的增加解释的方差的量(plotting explained variance) 目录

  3. R语言plotly可视化:使用PCA算法进行数据降维、使用plotly可视化PCA所有的主成分绘制散点图矩阵、降维后的两个(三个)核心主成分的二维、三维可视化图形、方差解释的量、载荷图等

    R语言plotly可视化:使用PCA算法进行数据降维.使用plotly可视化PCA所有的主成分绘制散点图矩阵.降维后的两个(三个)核心主成分的二维.三维可视化图形.方差解释的量.载荷图等 目录

  4. R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型

    R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型 目录 R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型

  5. c语言有参有类最小公倍数,C语言求最大公约数和最小公倍数算法

    C 语言求最大公约数和最小公倍数算法 C 语言求最大公约数和最小公倍数可以说是C 语言编程学习中一个重点和难点,它常常作为计算机专业学生参加各种考试必须要把握的内容.其算法方面除常用的辗转相除法外.还 ...

  6. 数据结构源码笔记(C语言):二叉排序树的基本操作算法

    //二叉排序树的基本运算算法#include<stdio.h> #include<malloc.h>#define MaxSize 100typedef int KeyType ...

  7. Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)

    Algorithm:C+语言实现之数组相关算法(和为定值的两个数.和为定值的m个数.荷兰国旗.长度为2n的洗牌算法.任意长度数组的洗牌算法) 目录 数组 1.寻找和为定值的两个数 2.和为定值的m个数 ...

  8. ML之RF:利用Js语言设计随机森林算法【DT之CART算法(gain index)】并应用随机森林算法

    ML之RF:利用Js语言设计随机森林算法[DT之CART算法(gain index)]&并应用随机森林算法 目录 输出结果 设计思路 代码实现(部分代码) 输出结果 设计思路 代码实现(部分代 ...

  9. Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理、倒排索、建立查找树、处理Hash冲突、Hash查找)

    Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理.倒排索.建立查找树.处理Hash冲突.Hash查找) 目录 一.SimHash算法 1.SimHash算法五个步骤 2. ...

最新文章

  1. magento 多语言 ,后台手工更改方法
  2. 【Flask项目】项目准备之-创建项目的APP对象
  3. 任意文件上传之绕过云waf+本地防火墙双重防护
  4. Mybatis与iBatis的主要区别对比
  5. 调度失败:执行器地址为空_三千字带你搞懂XXL-JOB任务调度平台
  6. iis7连接mysql_windows2008中正确使用IIS7配置PHP与MySQL
  7. 《Head First》 MVC运用的设计模式
  8. 表单式工作流功能模块设计方案
  9. 【Unity3D日常开发】Unity3D中数字网格类游戏Demo实现
  10. wordpress壁纸小程序开源版_图片小程序源码
  11. 清除浏览器缓存(js、css等)
  12. 客房管理系统C语言——课程设计实习
  13. 内存不够清理方法,costdown项目时如果裁剪不下来,也可以参考
  14. java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.Text, recieved org
  15. 轻量级java框架 light-4j
  16. How to Write a Spelling Corrector代码注释
  17. 计算机桌面备份在哪里,怎样备份系统,文件备份在哪里
  18. sqlzoo-day7
  19. IDL图像可视化(八)
  20. 微信提示:非微信官方网页,需点继续访问才能打开网页的解决方案

热门文章

  1. python:基础知识详解
  2. 玉米社:外链、反链、内链、友链的区别与联系详解
  3. 基于STM32的微型电子琴设计
  4. 自媒体账号如何注册?手把手教你只需四步
  5. springBoot之SSM技术整合
  6. 盒式滤波_如何数字化/备份盒式磁带和其他旧媒体
  7. 你敢用猎豹WIFI 我就敢***你的电脑
  8. 如何在 Spring Boot 中用 Shiro 实现权限管理
  9. 你的产品是否符合基本的商业逻辑?
  10. 数学建模用matlab还是python_参加数学建模用 MATLAB,还是 Python?