邻接矩阵的c语言描述(邻接矩阵创建有向图c语言)

针对邻接矩阵的c语言描述(邻接矩阵创建有向图c语言)的内容, 嗨壳技术分享网今天给大家作出详细的解答吧!

  今天给各位分享邻接矩阵的c语言描述的知识,其中也会对邻接矩阵创建有向图c语言进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

  本文目录一览:

  1、数据结构-图的邻接矩阵表示(C语言)

2、用C语言实现无向图的邻接矩阵,求大神看有什么问题

3、怎么用C语言将邻接矩阵转化为可达矩阵? (急)

4、用C语言实现 图的邻接表和邻接矩阵数据结构的定义、创建;图的深度优先遍历、广度优先遍历。

  数据结构-图的邻接矩阵表示(C语言)

  #includestdio.h

  int min(int a,int b)

  {

  return ab?b:a;

  }

  int fun(int **a,int n,int begin,int end)

  {

  int m=~(131),i;

  if(begin==end)

  return 0;

  else

  {

  for(i=0;in;i++)

  if(a[begin][i]!=-1a[begin][i]!=0)

  m=min(fun(a,n,i,end),m);

  return m;

  }

  }

  int main()

  {

  int n,i,js=0;

  char begin,end;

  int a[26][26],b[26]={0};

  scanf(“%d”,n);

  for(i=0;in;i++)

  for(j=0;jn;j++)

  {

  scanf(“%d,a[i][j]”);

  if(ija[i][j]!=-1)

  b[i]++;

  }

  getchar();

  scanf(“%c %c”,begin,end);

  for(i=0;in;i++)

  s=s+b[i];

  printf(“%d

  ”,s);

  for(i=0;in;i++)

  printf(“%d

  ”,b[i]);

  fun(a,n,begin-‘A’,end-‘A’);

  return 0;

  }

  用C语言实现无向图的邻接矩阵,求大神看有什么问题

  指针只是申明了,没有初始化。

  void main()

  {

  Mgraph g;

  Mgraph *G = g;

  //…

  }

  或者

  void main()

  {

  Mgraph g;

  CreateMGraph(g);

  }

  CreateMGraph()里面的错误自己看吧。

  PS:C语言标准要求main函数返回值为int类型。

  怎么用C语言将邻接矩阵转化为可达矩阵? (急)

  第一步,二重循环:邻接矩阵+单位矩阵

  for i=0 to shangxian (i++)

  for j=0 to shangxian (j++)

  if i=j then a[i,j]=a[i,j]+1(单位矩阵对角线上的值为1)

  nextj,i

  第二步,所得矩阵和自身相乘(二重循环)。矩阵乘法需要些好多字,就不写了,相信你知道,至少也应该能查到。

  第三步,相乘后得到的矩阵和为相乘前的矩阵比较,(也是二重循环)。如相等则完事,否则重复执行第二、三步。

  如果自动执行二、三的相乘和比较过程,则需要在外面加一层条件循环。

  用C语言实现 图的邻接表和邻接矩阵数据结构的定义、创建;图的深度优先遍历、广度优先遍历。

  /*

  程序1:邻接表的dfs,bfs

  其中n是点的个数,m是边的个数,你需要输入m条有向边,如果要无向只需要反过来多加一遍即可。

  */

  #include stdio.h

  #include string.h

  #define MAXM 100000

  #define MAXN 10000

  int next[MAXM],first[MAXN],en[MAXM],n,m,flag[MAXN],pd,dl[MAXN],head,tail;

  void input_data()

  {

  scanf(“%d%d”,n,m);

  int i,x,y;

  for (i=1;i=m;i++)

  {

  int x,y;

  scanf(“%d%d”,x,y);

  next[i]=first[x];

  first[x]=i;

  en[i]=y;

  }

  }

  void pre()

  {

  memset(flag,0,sizeof(flag));

  pd=0;

  }

  void dfs(int x)

  {

  flag[x]=1;

  if (!pd)

  {

  pd=1;

  printf(“%d”,x);

  }else

  printf(” %d”,x);

  int p=first[x];

  while (p!=0)

  {

  int y=en[p];

  if (!flag[y])   dfs(y);

  p=next[p];

  }

  }

  void bfs(int k)

  {

  head=0;tail=1;

  flag[k]=1;dl[1]=k;

  while (headtail)

  {

  int x=dl[++head];

  if (!pd)

  {

  pd=1;

  printf(“%d”,x);

  }else printf(” %d”,x);

  int p=first[x];

  while (p!=0)

  {

  int y=en[p];

  if (!flag[y])

  {

  flag[y]=1;

  dl[++tail]=y;

  }

  p=next[p];

  }

  }

  }

  int main()

  {

  input_data();//读入图信息。

  pre();//初始化

  printf(“图的深度优先遍历结果:”);

  int i;

  for (i=1;i=n;i++)//对整张图进行dfs; 加这个for主要是为了防止不多个子图的情况

  if (!flag[i])

  dfs(i);

  printf(“

  ————————————————————-

  ”);

  pre();//初始化

  printf(“图的广度优先遍历结果为:”);

  for (i=1;i=n;i++)

  if (!flag[i])

  bfs(i);

  printf(“

  ———————-end————————————

  ”);

  return 0;

  }

  /*

  程序2:邻接矩阵

  图的广度优先遍历和深度优先遍历

  */

  #include stdio.h

  #include string.h

  #define MAXN 1000

  int n,m,w[MAXN][MAXN],flag[MAXN],pd,dl[MAXN];

  void input_data()

  {

  scanf(“%d%d”,n,m);

  int i;

  for (i=1;i=m;i++)

  {

  int x,y;

  scanf(“%d%d”,x,y);

  w[x][0]++;

  w[x][w[x][0]]=y;

  }

  }

  void pre()

  {

  memset(flag,0,sizeof(flag));

  pd=0;

  }

  void dfs(int x)

  {

  flag[x]=1;

  if (!pd)

  {

  pd=1;

  printf(“%d”,x);

  }else printf(” %d”,x);

  int i;

  for (i=1;i=w[x][0];i++)

  {

  int y=w[x][i];

  if (!flag[y])   dfs(y);

  }

  }

  void bfs(int t)

  {

  int head=0,tail=1;

  dl[1]=t;flag[t]=1;

  while (headtail)

  {

  int x=dl[++head];

  if (!pd)

  {

  pd=1;

  printf(“%d”,x);

  }else printf(” %d”,x);

  int i;

  for (i=1;i=w[x][0];i++)

  {

  int y=w[x][i];

  if (!flag[y])

  {

  flag[y]=1;

  dl[++tail]=y;

  }

  }

邻接矩阵的c语言描述(邻接矩阵创建有向图c语言)

  }

  }

  int main()

  {

  input_data();

  printf(“图的深度优先遍历结果:”);

  pre();

  int i;

  for (i=1;i=n;i++)

  if (!flag[i])

  dfs(i);

  printf(“

  —————————————————————

  ”);

  printf(“图的广度优先遍历结果:”);

  pre();

  for (i=1;i=n;i++)

  if (!flag[i])

  bfs(i);

  printf(“

  —————————–end——————————–

  ”);

  return 0;

  }

  关于邻接矩阵的c语言描述和邻接矩阵创建有向图c语言的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

以上【 邻接矩阵的c语言描述(邻接矩阵创建有向图c语言) 】是嗨壳技术分享网(www.heikehao.com)编辑整理。嗨壳技术分享网包含技术投稿、C语言、Excel、Java、Linux、网络安全和账号安全等丰富的栏目,并分享一些互联网安全技术知识和安全防护经验,帮助网友注重网络安全,让网络安全不再是问题。

原创文章,作者:语言我知,如若转载,请注明出处:https://www.heikehao.com/783.html

(0)
语言我知语言我知
上一篇 2020年1月4日
下一篇 2020年1月4日

相关推荐

  • 学c语言十年(多久能学会C语言)

    今日,嗨壳技术分享网小编分享学c语言十年(多久能学会C语言) 相关内容,内容如下。   今天给各位分享学c语言十年的知识,其中也会对多久能学会C语言进行解释,如果能碰巧解决你现在面…

    2022年4月28日
  • 黑客帝国数字雨屏保c语言代码 – cmd黑客帝国代码雨

    黑客帝国数字雨屏保c语言代码 – cmd黑客帝国代码雨 大家并不陌生,借来给大家详细说说吧!   谁有黑客帝国里面的数字雨的动态图片   有那种代码可以让网页直接有数字…

    2020年1月22日
  • 如何显示四边形的a字母c语言,怎么用c语言显示*****为平行四边形

    关于如何显示四边形的a字母c语言,怎么用c语言显示*****为平行四边形话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些如何显示四边形的a字母c语言,怎么用c语言显示****…

    2020年7月3日
  • 盗qq号密码c语言

    盗qq号密码c语言   QQ盗号是什么原理?   1、密码太简单,被人盗用。使用真实的qq登陆过钓鱼网站。接收陌生人发来的文件,轻易打开,中了盗q木马;或其他方式导致电脑中招。没有…

    2020年8月30日
  • 单词c语言 – c语言英语单词

    今天,嗨壳技术分享网给大家整理一些单词c语言 – c语言英语单词内容。   C语言中常用的英文单词都是什么意思   c中常用的英文单词可以说是三种 一是关键字,也可以说…

    2021年12月1日
  • 串口控制led七彩灯51单片机c语言,基于串口通信的单片机灯光控制器

    今日,嗨壳技术分享网小编分享串口控制led七彩灯51单片机c语言,基于串口通信的单片机灯光控制器 相关内容,内容如下。   用C51单片机控制12个LED流水灯的C语言程序怎么写?…

    2022年1月1日
  • 链表遍历c语言实现

    今日,嗨壳技术分享网小编分享链表遍历c语言实现 相关内容,内容如下。   数据结构链表遍历C语言   1、单链表中头结点有两个作用:一是标识该链表的存在,而是可以通过头结点遍历整个…

    2020年1月6日
  • c语言char赋值

    c语言char赋值   c语言结构体中的一个char数组怎么赋值?   (1)用字符常量逐个初始化数组。例如:   char a[8]={‘i’,&#821…

    2020年2月25日
  • c语言加减char语言,c语言中加减怎么表示

    c语言加减char语言,c语言中加减怎么表示   C语言编写加减计算程序   首先打开Code Blocks软件,新建一个C语言文件,如下图所示。接下来在C语言文件中编写加减乘除运…

    2023年11月11日
  • 提升c语言能力,c语言总结提高

    关于提升c语言能力,c语言总结提高话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些提升c语言能力,c语言总结提高内容,让我们一起了解一些技术吧!   如何训练c语言的机考能力…

    2020年5月21日