面试相关基础知识
2015-03-12 17:17
351 查看
1、python中元组、列表、字典和集合的区别
点击打开链接2、python中反转列表的方法
revered()、sorted()、切片这三种方法。点击打开链接
3、二叉树的指针实现和数组实现,以及二叉树的第K层叶子节点个数的求法有哪些?
点击打开链接1) 顺序存储结构:二叉树的顺序存储结构就是用一维数组存储二叉树中的结点。
一层一层地存在。
2) 完全二叉树:完全二叉树由于其结构上的特点,通常采用顺序存储方式存储。一棵有n个结点的完全二叉树的所有结点从1到n编号,就得到结点的一个线性系列。如下图:完全二叉树除最下面一层外,各层都被结点充满了,每一层结点的个数恰好是上一层结点个数的2倍,因此通过一个结点的编号就可以推知它的双亲结点及左,右孩子结点的编号:
① 当 2i ≤ n 时,结点 i 的左孩子是 2i,否则结点i没有左孩子;
② 当 2i+1 ≤ n 时,结点i的右孩子是 2i+1,否则结点i没有右孩子;
③ 当 i ≠ 1 时,结点i的双亲是结点 i/2;
![](http://img.ddvip.com/2014/0521/201405210954288838.gif)
注意:由于数组下标从0开始,因此数组元素的下标等于结点在完全二叉树中的序号减1。
3. 一般二叉树:对于一般的二叉树,如果仍按照从上至下,从左到右的顺序将树中的结点顺序存储在一维数组中,则数组元素下标之间的关系不能够反映二叉树结点之间的逻辑关系。这时假设将一般二叉树进行改造,增添一些并不存在的空结点,使之成为一棵完全二叉树的形式,然后再用一维数组顺序存储。在二叉树中假设增添的结点在数组中所对应的元素值为"空"用^表示。
![](http://img.ddvip.com/2014/0521/201405210954305722.gif)
4、循环队列
队列满的条件是:
(rear+1)%QueueSize == front
通用的计算队列长度的公式为:
(rear - front+ QueueSize)%QueueSize
相关文章推荐
- java相关面试的基础知识
- 面试总结(一)——Java基础相关知识
- Android 基础知识面试相关总结
- 精华 | 机器学习岗面试,这些是基础!(ML,DL,SL相关知识整理)
- JAVA相关基础知识 选择自fanlitcn 的Blog
- JAVA相关基础知识(2)
- JAVA相关基础知识---2
- JAVA相关基础知识
- JAVA相关基础知识
- JAVA相关基础知识(转载)
- JAVA相关基础知识
- JAVA相关基础知识
- 从华为的一道面试反映出自己的基础知识的不扎实
- JAVA相关基础知识(3)
- JAVA相关基础知识---1
- JAVA相关基础知识(二)(转贴)
- JAVA相关基础知识_mxf
- JAVA相关基础知识(4)
- JAVA相关基础知识 (转载)
- JAVA相关基础知识