摘要:
树型结构一直是一种很重要的数据结构, 我们知道二叉查找树BST提供了一种快速查找, 插入的数据结构. 相比散列表来说BST占用空间更小,对于数据量较大和空间要求较高的场合, BST就显得大有用处了.BST的大部分操作平均运行时间为O(logN), 但是如果树是含N个结点的线性链,则最坏情况运行时间会变为O(N). 为了避免出现最坏情况我们给它增加一些平衡条件, 使它的高度最多为2log(N+1), 最坏情况下运行是间花费也接近O(logN), 这就是我下面要讨论的红黑树.由于红黑树的插入和删除是相对复杂的操作,所以这里我将重点讨论这两种操作.AVL树在理解红黑树之前最好先来看看AVL树, 相比 阅读全文
posted @ 2013-11-04 21:08
Andy Niu
阅读(664)
评论(0)
推荐(0)
摘要:
负责一个项目,概要设计大概分为以下几个过程:1、确定边界:确定边界后,才能明确与外部哪些实体交互,交互需要确定:通信方式是串口还是网络,消息的大小,消息的格式,消息是同步还是异步。2、划模块:模块之间有竖直关系和水平关系,比如MVVM模式可以认为是竖直关系,从外部的界面到内部的数据。水平关系比如:接受消息,处理消息,转发消息。3、定接口:模块可以认为是一个IPO(Input-Process-Output)控件,概设的时候,模块是一个黑盒,对外的接口要尽量小。4、理流程:使用时序图,说明对于一个功能,若干模块是如何协作完成的。 阅读全文
posted @ 2013-11-04 19:07
Andy Niu
阅读(725)
评论(1)
推荐(0)
摘要:
1、初始化与赋值的区别: 二者的区别不是看,是否有=这个赋值操作符,而是看操作的时候,对象是否已经有值。 初始化:创建对象,并给它设置初始值。 赋值:对象已经有值,擦除对象的当前值,并使用新值代替。2、初始化分为直接初始化和copy初始化。 直接初始化:直接调用与实参匹配的构造方法。 copy初始化:也叫copy构造,总是调用copy构造方法。copy构造方法就是这样的,Person(const Person& rhs),也就是根据已有的对象,copy对象的内容,形成一个副本。3、一方面:定义对象的时候,肯定调用某个构造方法进行了初始化,包括显示或者隐式。另一方面,对象的初始化必须是. 阅读全文
posted @ 2013-11-04 18:34
Andy Niu
阅读(993)
评论(0)
推荐(0)