软件设计师模拟试题

  1 一笔画问题

  2 迷宫问题

  3 最短路径问题(就是给出一个交通示意图,边上的数字为路的长度,求每个结点到某个固定点的最短路程)

  4 N个球称重问题吧

  荷兰国旗问题????四色定理

  3种颜色(0,1,2)在一个数组里,每次只可交换一次,扫描一边后,三种颜色自然分开,应为颜色为:红,白,蓝,(荷兰国旗的颜色)所以叫它荷兰国旗问题(也是他老人家的国籍)!

  #include "stdio.h"

  #include "stdlib.h"

  #include "time.h"

  #define N 15

  int main(int argc, char* argv[])

  {

  char array[N];

  char t,*p_red_end,*p_write_end,*p_blue_head; //分别为红色的尾指针、白色的尾指针、蓝色的首指针

  int i;

  srand( (unsigned)time( NULL ) );

  for(i=0;i

  {

  switch (rand()%3)

  {

  case 0:

  array='r';

  break;

  case 1:

  array='w';

  break;

  default:

  array='b';

  }

  printf("%c ",array);

  }

  printf("n";

  for(p_red_end=p_write_end=array,p_blue_head=array+14;p_write_end<=p_blue_head

  switch (*p_write_end)

  {

  case 'r':

  t=*p_red_end;

  *p_red_end=*p_write_end;

  *p_write_end=t;

  p_red_end++;

  p_write_end++;

  break;

  case 'b':

  t=*p_write_end;

  *p_write_end=*p_blue_head;

  *p_blue_head=t;

  p_blue_head--;

  break;

  default:

  p_write_end++;

  }

  for(i=0;i

  printf("%c ",array);

  }

  运行结果是:

  rrrwwrwwrwbbbbb

  这个结果是荷兰国旗算法的结果吗?(我不清楚荷兰国旗算法)

  题目最终要求的结果应该是:红,白,兰,红,白,兰,红,白,兰……还是:红,红,红,红,红,白,白,白,白,蓝,蓝,蓝,蓝,蓝……?

关注更新
返回首页

推荐排行

最新阅读


反馈