算法c语言实现第6部分,妙趣横生算法C语言实现 (6)
#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)相关推荐
- 输入年输出属相编程c语言,妙趣横生的C语言.ppt
<妙趣横生的C语言.ppt>由会员分享,可在线阅读,更多相关<妙趣横生的C语言.ppt(40页珍藏版)>请在装配图网上搜索. 1.妙趣横生的C语言,授课者: 赵 佳 授课班级: ...
- R语言plotly可视化:使用PCA算法进行数据降维、使用plotly可视化随着主成分的增加解释的方差的量(plotting explained variance)
R语言plotly可视化:使用PCA算法进行数据降维.使用plotly可视化随着主成分的增加解释的方差的量(plotting explained variance) 目录
- R语言plotly可视化:使用PCA算法进行数据降维、使用plotly可视化PCA所有的主成分绘制散点图矩阵、降维后的两个(三个)核心主成分的二维、三维可视化图形、方差解释的量、载荷图等
R语言plotly可视化:使用PCA算法进行数据降维.使用plotly可视化PCA所有的主成分绘制散点图矩阵.降维后的两个(三个)核心主成分的二维.三维可视化图形.方差解释的量.载荷图等 目录
- R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型
R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型 目录 R语言xgboost包:使用xgboost算法实现随机森林(random forest)模型
- c语言有参有类最小公倍数,C语言求最大公约数和最小公倍数算法
C 语言求最大公约数和最小公倍数算法 C 语言求最大公约数和最小公倍数可以说是C 语言编程学习中一个重点和难点,它常常作为计算机专业学生参加各种考试必须要把握的内容.其算法方面除常用的辗转相除法外.还 ...
- 数据结构源码笔记(C语言):二叉排序树的基本操作算法
//二叉排序树的基本运算算法#include<stdio.h> #include<malloc.h>#define MaxSize 100typedef int KeyType ...
- Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)
Algorithm:C+语言实现之数组相关算法(和为定值的两个数.和为定值的m个数.荷兰国旗.长度为2n的洗牌算法.任意长度数组的洗牌算法) 目录 数组 1.寻找和为定值的两个数 2.和为定值的m个数 ...
- ML之RF:利用Js语言设计随机森林算法【DT之CART算法(gain index)】并应用随机森林算法
ML之RF:利用Js语言设计随机森林算法[DT之CART算法(gain index)]&并应用随机森林算法 目录 输出结果 设计思路 代码实现(部分代码) 输出结果 设计思路 代码实现(部分代 ...
- Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理、倒排索、建立查找树、处理Hash冲突、Hash查找)
Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理.倒排索.建立查找树.处理Hash冲突.Hash查找) 目录 一.SimHash算法 1.SimHash算法五个步骤 2. ...
最新文章
- magento 多语言 ,后台手工更改方法
- 【Flask项目】项目准备之-创建项目的APP对象
- 任意文件上传之绕过云waf+本地防火墙双重防护
- Mybatis与iBatis的主要区别对比
- 调度失败:执行器地址为空_三千字带你搞懂XXL-JOB任务调度平台
- iis7连接mysql_windows2008中正确使用IIS7配置PHP与MySQL
- 《Head First》 MVC运用的设计模式
- 表单式工作流功能模块设计方案
- 【Unity3D日常开发】Unity3D中数字网格类游戏Demo实现
- wordpress壁纸小程序开源版_图片小程序源码
- 清除浏览器缓存(js、css等)
- 客房管理系统C语言——课程设计实习
- 内存不够清理方法,costdown项目时如果裁剪不下来,也可以参考
- java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.Text, recieved org
- 轻量级java框架 light-4j
- How to Write a Spelling Corrector代码注释
- 计算机桌面备份在哪里,怎样备份系统,文件备份在哪里
- sqlzoo-day7
- IDL图像可视化(八)
- 微信提示:非微信官方网页,需点继续访问才能打开网页的解决方案