> For the complete documentation index, see [llms.txt](https://mqjyl2012.gitbook.io/algorithm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mqjyl2012.gitbook.io/algorithm/interview-question/basic-knowledge.md).

# 数据结构和算法基础

1、一个深度为 5 的满二叉树的节点个数有多少个？

2、B树 和 B+ 树的区别。【[链接](https://mqjyl2012.gitbook.io/algorithm/interview-question/pages/-MD0-mmfQY4SbIBTnHpM#二b树)】

3、a = 1， b = 4， 如何交换， 但是不能使用第三个变量。

```cpp
a = a + b; b = a - b; a = a - b;       
a = a ^ b; b = a ^ b; a = a ^ b;
```

4、什么时候用堆，什么时候用栈？

5、红黑树和跳表的区别？

6、快排的时间复杂度？什么情况下时间复杂度为 $$O(n^2)$$ ？怎么避免？
