摘要:
1.问题定义对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢?2.编程之美解法解法一,遍历数组一次,分别比较,最大最小值,比较次数为2*N。解法二,遍历数组,每两个进行比较,小的放前面,大的放后面,如a[0]和a[1]比较,如果a[1]大,则交换,比较N/2次。这样,最大数在偶数位上,最小数在奇数位上,然后再各比较N/2次,共比较1.5N次。但是该方法改变了原有的数组结构,数据有变动。解法三,设置两个变量Max,Min。遍历数组,每两个数据进行比较,大的再跟Max比较,小的跟Min比较,共1.5N次。似乎是最少的比较次数了。具体实现如下:void FindArrayMa 阅读全文
随笔档案-2011年05月
C++ enum剖析
2011-05-31 19:55 by x_feng, 707 阅读, 收藏,
摘要:
枚举的定义要用到关键字enum,就像类的定义用class,结构体用struct一样,enum和struct、class都是用户自定义类型,只不过枚举的内容比较简单,也不常用。如下:class myClass//类名{}mc;//类对象struct myStruct//结构体名{}ms;//结构体对象enum myEnum//枚举名{ //标识符 = 整型常数}me;//枚举对象。可以没有枚举名和枚举变量1.枚举定义enum open {in, out, app}openfile;默认第一个枚举成员赋值为0,即in = 0,后面的每个枚举成员赋的值比前面的大1。也可以显式赋值,如:enum op 阅读全文
Programe_Of_Beauty:3.10 分层遍历二叉树(另一种实现方法)
2011-05-30 19:41 by x_feng, 301 阅读, 收藏,
摘要:
1.问题定义给定一棵二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。下面是一个例子: 正确输出为:12 34 5 67 8节点定义:struct Node { Node *pLeft; //节点数据 Node *pRight; //左指针 int data; //右指针};2.编程之美解法书上举出两个解法。第一个解法是用递归方式,搜寻并打印某一层的节点,再打印下一层的节点。这方法简单但时间效率不高(但不需要额外空间),因此书中亦提供了第二个解法。 书中第二个解法,使用vector容器来储存n个节点信息,并用 阅读全文
Programe_Of_Beauty :3.9 重建二叉树
2011-05-29 15:30 by x_feng, 225 阅读, 收藏,
摘要:
1.问题定义对于二叉树的3中遍历方法,相信大家耳熟能详。那么如果我们知道了其中的两种遍历结果,能不能把一棵二叉树重新建立起来?给定一棵二叉树,假设每个节点都用唯一的字符来表示,没有重复。结构如下:struct _Node{ _Node* Lchild; _Node* Rchild; char data;};假设已有了前序遍历和中序遍历的结果,希望通过一个算法来重建这棵树。前序遍历:a, b, d, c, e, f 显然a是根节点中序遍历:d, b, a, e, c, f a前面的d, b是a的左子树中的节点,a后面的e, c, f是a右子树中的节点重建后的图如下: 2.分析与解法不难发现a是前 阅读全文
Programe_Of_Beauty:3.8 求二叉树中节点的最大距离
2011-05-28 19:15 by x_feng, 257 阅读, 收藏,
摘要:
1.问题定义定义距离为两个节点之间边的个数。写一个程序求一棵二叉树中相距最远的两个节点之间的距离。下面是两个例子: 上图中列出了二叉树中节点间距离最大的所有可能情况。箭头所指的边标示了A、B之间最大的距离。2.问题分析从上图中可以看出,距离最远的两个点一定有一个共同的“根”节点,或者其中一个就是根节点(注意前者的“根”与后者的根的区别,前者的“根”包含后者)。因此只要能计算出所有“根”的左子树的最深长度和右子树的最深长度,就可以知道经过此“根”节点的所有路径中的最大距离。通俗的讲,就是计算任意一个节点的左右子树的最深长度。3.递归算法树节点的结构体定义:struct _Node{ _Node 阅读全文
Windows Live Writer中Syntax Higlighter 2.0代码着色插件使用设置
2011-05-27 20:57 by x_feng, 269 阅读, 收藏,
摘要:
一直在园子里逛,经常看见别人的博客排版非常漂亮,羡慕已久…今天也想弄出别人那样的代码显示风格,这一弄完全不是想象的那回事(或许比较笨吧),我期望的代码显示风格如下: 有行号、关键字着色、自定义变量、数字颜色等都不相同,呵呵,还有那条可爱的小绿线…。废话少说,Windows Live Writer大家都有用吧,具体的配置方式请见:http://space.cnblogs.com/forum/t... 阅读全文
浙公网安备 33010602011771号