数组
数组类型 | 存储地址计算 |
一维数组a[n] | a[i]的存储地址是:a+i*len |
二维数组a[n][m] |
a[i][j]的存储地址是: 按行存储:a+(i*m+j)*len 按列存储:a+(j*n+i)*len |
例:已知5行5列的二维数组a中的各元素占2个字节,求元素a[2][3]按行优先存储的存储地址?
a+(2*5+3)*2=a+26
稀疏矩阵
数据结构:
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往和高效的检索算法和索引技术有关。
数据逻辑结构:
线性结构,非线性结构(树,图[有环路])
树:
二叉树遍历
前序遍历(根,左,右)
中序遍历(左,根,右)
后序遍历(左,右,根)
层次遍历(第一层,第二层...)
前序遍历:1,2,4,5,7,8,3,6
中序遍历:4,2,7,8,5,1,3,6
后序遍历:4,8,7,5,2,6,3,1
层次遍历:1,2,3,4,5,6,7,8
反向构造二叉树(已知两种序列,画出二叉树)
普通树转二叉树(孩子结点-左子树结点,兄弟结点-右孩子结点)
查找二叉树
二叉排序树(左孩子小于根,右孩子大于根)
最优二叉树(哈夫曼树)
构造最短的带权路径的树
线索二叉树:
使遍历更加快捷
绿线指向前驱结点,红线指向后驱结点
平衡二叉树
来源:https://www.cnblogs.com/pushudepu/p/5955351.html