范文无忧网范文学习范文大全

图的广度优先遍历的C语言程序有头文件的

02月18日 编辑 fanwen51.com

[单片机 C语言程序]P1=1<<j++;这句错了,<&lt;这个是左移,而不是循环左移 改为这样就可以了 #include <reg52.h> #include<intrins.h> typedef unsigned int uint16; typedef unsigned char uint8;...+阅读

// bo7-2.cpp 图的邻接表存储(存储结构由c7-2.h定义)的基本操作(15个) int LocateVex(ALGraph G,VertexType u) { // 初始条件: 图G存在,u和G中顶点有相同特征 // 操作结果: 若G中存在顶点u,则返回该顶点在图中位置;否则返回-1 int i; for(i=0;iinfo=NULL; // 图 p->nextarc=G.vertices[i].firstarc; // 插在表头 G.vertices[i].firstarc=p; if(G.kind>=2) // 无向图或网,产生第二个表结点 { p=(ArcNode*)malloc(sizeof(ArcNode)); p->adjvex=i; if(G.kind==3) // 无向网 { p->info=(int*)malloc(sizeof(int)); *(p->info)=w; } else p->info=NULL; // 无向图 p->nextarc=G.vertices[j].firstarc; // 插在表头 G.vertices[j].firstarc=p; } } return OK; } void DestroyGraph(ALGraph &G) { // 初始条件: 图G存在。

操作结果: 销毁图G int i; ArcNode *p,*q; G.vexnum=0; G.arcnum=0; for(i=0;inextarc; if(G.kind%2) // 网 free(p->info); free(p); p=q; } } } VertexType& GetVex(ALGraph G,int v) { // 初始条件: 图G存在,v是G中某个顶点的序号。操作结果: 返回v的值 if(v>=G.vexnum||v-1) // v是G的顶点 { strcpy(G.vertices[i].data,value); return OK; } return ERROR; } int FirstAdjVex(ALGraph G,VertexType v) { // 初始条件: 图G存在,v是G中某个顶点 // 操作结果: 返回v的第一个邻接顶点的序号。

若顶点在G中没有邻接顶点,则返回-1 ArcNode *p; int v1; v1=LocateVex(G,v); // v1为顶点v在图G中的序号 p=G.vertices[v1].firstarc; if(p) return p->adjvex; else return -1; } int NextAdjVex(ALGraph G,VertexType v,VertexType w) { // 初始条件: 图G存在,v是G中某个顶点,w是v的邻接顶点 // 操作结果: 返回v的(相对于w的)下一个邻接顶点的序号。 // 若w是v的最后一个邻接点,则返回-1 ArcNode *p; int v1,w1; v1=LocateVex(G,v); // v1为顶点v在图G中的序号 w1=LocateVex(G,w); // w1为顶点w在图G中的序号 p=G.vertices[v1].firstarc; while(p&p->adjvex!=w1) // 指针p不空且所指表结点不是w p=p->nextarc; if(!p||!p->nextarc) // 没找到w或w是最后一个邻接点 return -1; else // p->adjvex==w return p->nextarc->adjvex; // 返回v的(相对于w的)下一个邻接顶点的序号 } void InsertVex(ALGraph &G,VertexType v) { // 初始条件: 图G存在,v和图中顶点有相同特征 // 操作结果: 在图G中增添新顶点v(不增添与顶点相关的弧,留待InsertArc()去做) strcpy(G.vertices[G.vexnum].data,v); // 构造新顶点向量 G.vertices[G.vexnum].firstarc=NULL; G.vexnum++; // 图G的顶点数加1 } Status DeleteVex(ALGraph &G,VertexType v) { // 初始条件: 图G存在,v是G中某个顶点 // 操作结果: 删除G中顶点v及其相关的弧 int i,j; ArcNode *p,*q; j=LocateVex(G,v); // j是顶点v的序号 if(jnextarc; if(G.kind%2) // 网 free(q->info); free(q); G.arcnum--; // 弧或边数减1 } G.vexnum--; // 顶点数减1 for(i=j;inextarc; if(G.kind%2) // 网 free(p->info); free(p); p=G.vertices[i].firstarc; if(G.kindnextarc=p->nextarc; if(G.kind%2) // 网 free(p->info); free(p); p=q->nextarc; if(G.kind...

延伸阅读:

用C语言编写一个计算薪水的程序/*工资计算程序*/ #include main() { float originWage; /*应发工资*/ float realWage; /*实发工资*/ float tax; /*所缴税款*/ int i,hour,amount,money; printf("请选择工资种...

关于C语言的问题实型变量分为两类:单精度型和双精度型, 其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能...

图的遍历的实现数据结构课程设计Queue.h-----------------------------------------#include#includeconst int maxSize=50;class Queue{ public:Queue(){}; ~Queue() {}; virtual bool EnQueue(const int&...

求C语言编写的表白程序要代码呃,你还不如用vbs,网上也有一堆教程和例子,很简单,随便看一下就知道怎么写了。1234567891011121314 DimmyName,herName,myNameAns,herNameAnsmyName="池早早"herName="欧浩辰"MsgBox...

求一个示爱的小程序 C语言void a(int aa) {for(int i=0;i<aa;i++)printf(" ");} void b() {printf ("*");} char c(int cc) {printf("%c",cc);return 0;} int main() {a(6);b();a(3);b();a(5);b();a(3);b()...

C问题:查找算法:程序要求根据文件中给定的数据设定一个高效的你好,很高兴为你解答! 我觉得是查找一篇文章中某个单词数出现的次数,但是你题目的要求是查找字符串出现的次数,所以我还是按你的题意来写的 还有,我并不赞同楼上那些用C风格字符...

工资管理C程序中如何实现文件的读取与输出这个需要用的文件的输入和输出函数。 如fprintf、fgets等等函数。 具体格式由于都是概念性问题,建议认真你看一下c语言文件那一章。 我给你例一个例子,说明一下怎么打开文件和...

求动漫所有女王类型的角色要有她的名字和动漫名字有图的优先采纳零波丽 三原千春 阎魔爱 灰原哀 雅美 北冥雪 蔷薇 神尾观铃--AIR 夏娜---灼眼的夏娜 露易丝---零之使魔 拉克丝.库莱茵----机动战士高达SEED 水濑名雪----KANON 园宫可怜---...

C语言数据结构与算法分析C语言描述Position不是一个类型,起码C语言中,我写那么多年代码没见过这个类型 。你该把整段代码贴上来。我猜你看的那段代码是伪代码,Position是自定义类型。若Position是类名,那么Positi...

推荐阅读
图文推荐
栏目列表