摘要:
问如何将一个二叉树序列化保存到文件,使得文件越小越好.可能的方法:第一种方法:把二叉树按前序和中序遍历一遍,存两次二叉树。第二种方法:将二叉树按左枝为0,右枝为1进行路径编码,那么每个节点都可以表示成,节点信息和路径信息进行永久化。第三种方法:将二叉树变成满二叉树,采用数组存储满二叉树,那么数据index和根据二叉树的节点信息进行永久化。第四种方法:采用一个位图和所有节点信息进行存储,位图上的0代... 阅读全文
posted @ 2011-12-05 20:25
kevin Lee
阅读(312)
评论(0)
推荐(0)
摘要:
假设有s个面额不同的硬币: v[1] Q[i-1][j-k*v[i]]+k){ min= Q[i-1][j-k*v[i]]+k; } } Q[i][j]=min; } } cout=1){ if(Q[i][j]0){ coutQ[j-v[i]]+1){ Q[j]=Q[j-v[i]]+1; T[i][j]=T[i][j-v[i]]+1; } } ... 阅读全文
posted @ 2011-12-05 18:41
kevin Lee
阅读(376)
评论(0)
推荐(0)
摘要:
1,给定一个整数数组,求它的一个最长递增子序列,求出其长度和对应的子序列。要求时间复杂度为O(n^2) (对应算法导论 习题15.4-5)解答:这个算法和求最长递减子序列比较类似。我们定义原始数组为a[1],a[2],...,a[n],定义S[i]为以a[i]结尾的最长递增子序列的长度,那么状态转换函数就为:s[i]=max{s[r]| 1=a[r]}+1。初始情况为s[1]=1,代码如下://求... 阅读全文
posted @ 2011-12-05 17:03
kevin Lee
阅读(4463)
评论(0)
推荐(0)
浙公网安备 33010602011771号