摘要:
对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。给定图中的两个结点的指针UndirectedGraphNode*a,UndirectedGraphNode*b(请不要在意数据类型,图是有向图),请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。import java.... 阅读全文
摘要:
假设这样一个情景:在银行的营业厅内先后进来3个人,他们都要进行存款,若是只有一个营业窗口的话,通常的情况是每人都需要先领取顺序条,然后按序排队办理业务,而营业厅会根据号码的顺序依次叫号来处理顾客的问题。 在这里银行的窗口就可以看做共享的资源,它每次只能接待一个顾客,而不同的顾客则可以看做是多个... 阅读全文
摘要:
堆排序分为两个过程,一个建堆的过程,一个是从堆顶取数的过程。这里针对第一个过程,给出在堆的形式是完全满二叉树的情况下,建堆复杂度Ο(n)的简单推导。 上图是一个完全满二叉树,假设一个完全满二叉树的节点数为n,树高为h(共h层),则满足h = log(n + 1)。由堆的构建过程可以知道,第... 阅读全文
摘要:
太原理工大学有一门数据结构的精品课程,课程给出了栈和队列、线性表、树、图以及查找和排序的算法演示过程。 http://www.tyut.edu.cn/kecheng1/site01/suanfayanshi/default.asp图: (1)拓扑排序算法思想:选一个入度为 0 的顶点输出,并... 阅读全文
摘要:
下面总结几种常见的排序算法,包括插入排序、选择排序、快速排序、归并排序和堆排序。时间复杂度:插入排序选择排序快速排序归并排序堆排序Ο(n2)Ο(n2)Ο(nlog(n))Ο(nlog(n))Ο(nlog(n))算法概述:插入排序:每次从未排好序的数据堆中拿出一个数,插入到已排好序的数据队列的正确... 阅读全文
摘要:
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode*root,请返回一个bool,代表这棵树是否平衡。import java.util.*;/*public class TreeNode { int ... 阅读全文
摘要:
为了搞清楚每个应用程序在Android系统中最多可分配多少内存空间,我们使用了真机进行测试,测试机型为魅族MX4 Pro,3G内存。测试方法是直接申请一块较大的内存空间,看应用程序在最多申请多大的内存空间时会崩溃。 结果:(1)未设定属性android:largeheap = "true"时,... 阅读全文
摘要:
通常情况下,我们看到的表达式的形式称为表达式的中缀形式:a+b*c-d+e。 为了将其转化为前缀和后缀的形式需要先对表达式进行预处理,因为表达式中优先级的设定(乘除大于加减)虽然是我们约定好的,但是机器却不能够像人类一样加以区分,所以需要我们先告诉他们。为此我们需要加上括号,区分优先级:((a... 阅读全文
摘要:
可使用适配器进行控制显示的,最常见的是ListView和GridView,除此之外凡是继承了类AdapterView的类都需要配置适配器。而AdapterView类又继承自ViewGroup,可见这些类都是一些视图容器类,可包含其他的视图。 阅读全文
摘要:
Android中View体系的核心类View类:不废话,直接开始中(括号中为相关的方法):(1)android:alpha[setAlpha(float)] 设置视图字体透明度。(2)android:background[setBackgroundResource(int)] 设置背景图片。(3... 阅读全文