软考笔记第六天之数据结构与算法基础(一)

数组

数组类型 存储地址计算
一维数组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