随笔分类 -  c与数据结构

摘要:题目:有n=2^k个运动员要进行循环赛。现要设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次 (2)每个选手一天只能赛一次 (3)循环赛一共进行n-1天 解题思路:分治策略,先将选手分为2半,第归地用这种一分为二的策略对选手进行分割,直到只剩2个选手时 算法: void Table(int k,int[][]a) { int ... 阅读全文
posted @ 2008-07-27 11:39 火火 阅读(2697) 评论(0) 推荐(0)
摘要:题目:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 解题思路:将围成一圈的m只猴子看作是一个循环链表,从第一个节点(猴子)开始移动(数),到第n个节点(猴子),将它删除,然后从后面一个节点(猴子)继续移动,并从1重新开始计数……直到循环链表中只剩一... 阅读全文
posted @ 2008-07-16 18:19 火火 阅读(669) 评论(2) 推荐(0)
摘要:自上至下,自左而右打印一棵二叉树(Tree) 算法 解题思路:采用两个队列(Queue)辅助实现。 算法描述: Tree *t;// 定义一棵二叉树,指向二叉树的根节点 Queue *q1,*q2; //定义两个队列 Push(q1,t); // 将二叉树根节点压入队列q1中 while(q1!=null&&q2!=null) //如果队列q1,q2均为空表示已经打印完毕 { if(q2==nu... 阅读全文
posted @ 2008-07-16 17:36 火火 阅读(709) 评论(1) 推荐(0)
摘要:前段时间写过一篇《公交路线查询算法》,其中设计了一个数据存储的方案,这里又做了一番改进。 《公交路线查询算法》提到的算法最多提供倒乘一次的方案(我觉得在实际应用中也能基本满足需要,如果一个城市公交倒乘一次都不能到达目的地的话,公交也太不发达了)。如果将以下数据初始化为一张图,就可以按照图的路径查询算法来解决公交查询问题了,倒乘多次的方案也能提供。请真正做过公交查询系统的高人指点。 Stru... 阅读全文
posted @ 2007-01-24 16:46 火火 阅读(2864) 评论(1) 推荐(0)
摘要:今天跟亮猪谈到公交查询,不负责任的说了句很简单吗……但又一想不那么简单。 费了点时间,想个如此算法: 数据库中录入每一路公交走的线路包括途径站点,及站点间距离。 假设查询 从甲地到乙地的乘车路线 1,查询经过甲地的所有公交车组成集合B1,经过乙地的所有公交车组成B2 2,B1,B2取交集得到的公交车集合就是所有的直达车,比较路径长短,选择最佳。 但是,如若没有直达(即B1,B2交集... 阅读全文
posted @ 2006-12-30 15:55 火火 阅读(4190) 评论(3) 推荐(0)
摘要:以前,随笔没有分类,有些东西查阅起来就不那么方便了,现在整理一下。 c程序(大多数是是课程设计时写的): 判断是否回文字符串 ( 02-15 17:05) 单链表的交并差(c 语言 数据结构) ( 07-23 22:19) 递归下降语法分析程序 ( 07-07 22:41) 四则运算实现(c 语言 数据结构课程设计题) ( 02-25 17:40) 图的遍历的演示(c 语言 数据结构课程... 阅读全文
posted @ 2006-05-08 21:30 火火 阅读(1700) 评论(12) 推荐(0)