QQ登录

只需一步,快速开始

搜索
鱼C论坛笔记大赛成绩公示
查看: 377|回复: 1

[学习笔记] 一些基础算法

[复制链接]
最佳答案
1 
累计签到:93 天
连续签到:3 天
发表于 2017-6-21 19:12:03 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. #include <STDIO.H>
  2. int visited[5] = {0};

  3. int graph[5][5] =
  4. {
  5.         0,1,1,0,0,
  6.         1,0,0,1,1,
  7.         0,0,0,0,1,
  8.         0,1,0,0,1,
  9.         0,1,1,1,0
  10. };

  11. void DFS(int x)
  12. {
  13.         printf("%d\n",x);
  14.         visited[x] = 1;
  15.         int y;
  16.        
  17.         for(y = 0;y < 5;++y)
  18.                 if(graph[x][y] && !visited[y])
  19.                         DFS(y);
  20. }

  21. #define MAX_SIZE 0x40

  22. typedef struct
  23. {
  24.         int queue[MAX_SIZE];
  25.         int front,rear;
  26. }Queue,*PQueue;

  27. void InitQueue(PQueue PQ)
  28. {
  29.         PQ->rear = PQ->front = 0;
  30. }

  31. void InQueue(PQueue PQ,int data)
  32. {
  33.         PQ->queue[PQ->rear] = data;
  34.         PQ->rear = (PQ->rear + 1)%MAX_SIZE;
  35. }

  36. int OutQueue(PQueue PQ)
  37. {
  38.         int data = PQ->queue[PQ->front];
  39.         PQ->front = (PQ->front + 1)%MAX_SIZE;
  40.         return data;
  41. }

  42. int IsQueueEmpty(PQueue PQ)
  43. {
  44.         if(PQ->rear == PQ->front)
  45.                 return 1;
  46.         return 0;
  47. }

  48. void BFS(int x)
  49. {
  50.         Queue q;
  51.         int i;
  52.        
  53.         InitQueue(&q);
  54.        
  55.         InQueue(&q,x);
  56.         visited[x] = 1;               

  57.         while(!IsQueueEmpty(&q))
  58.         {
  59.                 x = OutQueue(&q);
  60.                 printf("%d\n",x);
  61.        
  62.                 for (i = 0;i < 5;++i)
  63.                 {
  64.                         if(!visited[i] && graph[x][i])
  65.                         {
  66.                                 InQueue(&q,i);
  67.                                 visited[i] = 1;        //标记访问
  68.                         }
  69.                 }
  70.                
  71.         }
  72. }

  73. int main()
  74. {
  75.         return 0;
  76. }
复制代码

评分

参与人数 1鱼币 +1 收起 理由
小甲鱼 + 1 支持楼主!

查看全部评分

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
最佳答案
0 
累计签到:74 天
连续签到:4 天
发表于 2017-7-8 23:43:00 | 显示全部楼层
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-9-25 12:30 Powered by Discuz! X2.5 Theme by dreambred

快速回复 返回顶部 返回列表