数据结构
SavantStart
这个作者很懒,什么都没留下…
展开
-
森林转换成二叉树
森林转换成二叉树,不多说,直接看图就明白了原创 2015-04-03 16:51:57 · 612 阅读 · 0 评论 -
程序员面试题精选100题(17)-把字符串转换成整数[算法]
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串”345”,则输出整数345。 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程序员就这道题写出的代码有很大区别,可以说这道题能够很好地反应出程序员的思维和编程习惯,因此已经被包括微软在内的多家公司用作面试题。建议读者在往下看之前自己先编写代码,再比较自己写的代码和下面的参考代码有哪些不同。首先我们转载 2015-04-06 11:22:11 · 525 阅读 · 0 评论 -
理解红黑树(2)
继续上篇红黑树的分析,这次是树节点删除的分析 普通二叉树节点删除过程: 普通二叉数节点删除过程分为2种情况(删除target节点):case1这种情况就是target节点只有一个孩子,无论只有左孩子,还是只有右孩子,在这种情况下删除target节点,这种情况比较简单,就是直接删除target节点,然后重新把parent节点和child节点的父子关系设置好即可case2中,需要删除的节点targe转载 2015-04-14 17:22:33 · 393 阅读 · 0 评论 -
最短路径—Dijkstra算法和Floyd算法
Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。问题描述:在无向图 G=(V,转载 2015-04-04 12:14:16 · 462 阅读 · 0 评论 -
理解红黑树(1)
红黑树是一种二叉查找树,它是在1972年由Rudolf Bayer发明的,它的性能优于平衡2叉树(avl树),因为avl树过分追求平衡,avl树要求任何节点的左右子树高度之差不能大于1,而红黑树做到的是任何节点的左右子 树 高度差不会超过2倍(左子树的高度不会大于右子树高度的2倍,或者右子树的高度不会大于左子树的高度的2倍),由此看出avl树如果要保持平衡需要付出更 多的旋转(左旋,右旋),avl转载 2015-04-14 17:20:09 · 772 阅读 · 0 评论