2013年4月11日

算法导论练习 10.4-5及12.1-3

摘要: //算法导论10.4-5及12.1-3//1. 10.4-5//给定一个n节点的二叉树,写出一个O(n)时间的非递归过程,将该树每个节点的关键//字输出。要求除该树本身的存储空间外只能使用固定量的额外存储空间,且在过程中//不得修改该树,及时暂时的修改也不允许。//2. 12.1-3//设计一个执行中序遍历的非递归程序(提示:一种容易的方法是使用栈作为辅助数据//结构;另一种比较复杂但比较简洁的做法是不使用栈,但要假设能测试两个指针是否//相等。)struct tree{ int val; tree *left,*right,*parent;};void print(tree *x... 阅读全文

posted @ 2013-04-11 22:41 Blazebird 阅读(704) 评论(0) 推荐(0) 编辑

2012年4月28日

金币阵列问题

摘要: 问题描述:有mxn(m<= 100,n<= 100)个金币在桌面上排成一个m行n 列的金币阵列。每一枚金币或正面朝上或背面朝上。用数字表示金币状态,0表示金币正面朝上,1 表示背面朝上。金币阵列游戏的规则是:(1)每次可将任一行金币翻过来放在原来的位置上;(2)每次可任选2 列,交换这2 列金币的位置。算法设计:给定金币阵列的初始状态和目标状态,计算按金币游戏规则,将金币阵列从初始状态变换到目标状态所需的最少变换次数。数据输入:文件中有多组数据。文件的第1行有1 个正整数k,表示有k 组数据。每组数据的第1 行有2 个正整数m 和n。以下的m行是金币阵列的初始状态,每行有n 个数字 阅读全文

posted @ 2012-04-28 10:43 Blazebird 阅读(921) 评论(0) 推荐(0) 编辑

导航