数组与压缩矩阵
矩阵存在数组中两种方式:按行存储和按列存数(地址公式不记,脑海构思自己想)
压缩矩阵:相同的元素压缩到一个数组单元中,0元素不存储
特殊举证的压缩存储:
- 对称矩阵 ->只存上三角 or 下三角;
- 三角举证 ->只存上三角 or 下三角+一个数组单元;
- 三对角矩阵:
(1). 数组下标从0开始: k = 3*(i-1)-1+j-i+1+1-1=2i+j-3
(2). 已知下标k求i,j:i=(k+1)/3+1 (把一个3拆开成2和1);j=k-2i+3(由k和i获得) - 稀疏矩阵:三元组+十字链表。
广义表
- 广义表中的元素可能是原子,还可能是广义表;
- 广义表可能是一个空表,E=();
- 可能是两个原子元素,E=(a1,a2);
- 可能是原子+广义表,E=(a1,A1);
- 可能是广义表+广义表,E=(A1,A2);
- 非空广义表的两种基本运算:取表头、取表尾。
任何一个非空广义表的表头是表中第一个元素,它可以是原子,也可以是子表,而其表尾必定是子表。
也就是说,在原来的表中你可能是原子,但是去表尾会把你变成广义表; - 求深度和长度:长度为