摘要: 题意:给定一个轮子,轮子只能朝着一个反向运动。。轮子上有五种不同的颜色,给定一个迷宫,轮子在一个格子转动90度耗费的时间为1,向前的时间也为1 ,求起点和终点轮子覆盖的颜色相同的最短时间:解题思路:开始以为visit只能代表迷宫的一个格子,原来它表示的是一种状态,,,用bfs ,,,str【】【】没初始化wrong了几次(注意啊)解题代码:#include #include #include struct node{ int dir,x,y,time,color;}list[10000000];int visit[30][30][10][10];//状态int nextxdir[4] =... 阅读全文
posted @ 2013-06-21 21:51 dark_dream 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 参阅《数据结构与算法分析》二叉查找树性质:对于一个节点,它的左子树的所有节点的值都小于它的值,它的右子树的所有节点的值都大于它的值1.声明:#ifdef _Tree_Hstruct TreeNode;typedef struct TreeNode *Position;typedef struct TreeNode *SearchTree;SearchTree MakeEmpty(SearchTree T);Position Find(int X, SearchTree T);Position FindMin(SearchTree T);Position FindMax(SearchTree T 阅读全文
posted @ 2013-06-21 15:03 dark_dream 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 堆的性质:堆是一棵完全二叉树,它有最大堆和最小堆之分,这里只分析最大堆!(最小堆与最大堆类似) 就是所有的子节点都小于根节点的完全二叉树堆的几种操作(数组实现): 其中 len 表示 数组长度,headsize表示堆的长度其中堆的左节点编号int LEFT(int i ){ return i*2;}堆的右节点编号:int RIGHT(int i ){ return i*2 +1;}堆的头结点编号int PARENT(int i ){ return i/2;}1.保持堆的性质:void MAX_HEAPIFY(int A[],int i){ int l = LEFT(i); int... 阅读全文
posted @ 2013-06-21 13:03 dark_dream 阅读(269) 评论(0) 推荐(0) 编辑