首页 > 代码库 > 【数据结构】

【数据结构】

一:算法分析

1:时间复杂度计算

T(n)=函数执行的最大次数。执行次数与输入规模有关。

原则:

1)去除常系数

2)同等数量级并且并列的则用 + 连接,并列的但数量级不同的取大者

3)嵌套的相乘

所以,我们先用  T(n)=K*t(f1(n))+M*t(f2(n))... 计算出算法执行的最大次数,然后运行化简法则化简:去常系数,和式取大,嵌套相乘,即可得到复杂度

 

2:空间代价

如果需要用到容器存放处理过程中的数据,那么我们可以根据输入规模n计算出空间开销代价与n的关系式。

 

二:树

1:遍历二叉树

前序:根左右

中序:左根右

后序:左右根

 

2:链表建立二叉树

每个结点一个node,有左右指针指向儿子

 

3:数组实现完全二叉树

n为结点总数,r为当前结点下标,则:

父节点为:floor[(r-1)/2]

左兄弟:r-1(r为偶数)

右兄弟:r+1(r为奇数)

左儿子:2r+1

右儿子:2r+2

 

4:遍历二叉树

5:由中序+前/后序遍历重建二叉树

6:BST的建立与使用

7:最大/最小堆的建立

8:哈夫曼编码树的建立及使用

9:计算树的高度

10:统计叶子数目

 

三:排序

1:

四:检索

五:索引

六:图

 

【数据结构】