1.数组优于链表的特点:
数组内存空间少比链表少
数组支持随机访问,链表不具有随机访问的特性
插入和删除是链表优于数组,数组需要移动被删除或者插入位置之后的元素
2.稀疏矩阵一般的压缩存储方式有两种,三元组和十字链表
所谓三元组就是一个元素存放三个信息,矩阵中的行号,列号以及值,这样就可以不存放值为0的元素,实现压缩。
十字链表相当于是邻接表和逆邻接表的合集,在一个元素里面存放了值以及出度表和入度表,这样也不需要像邻接矩阵那样存放大量0元素,而且找一个节点的入节点和找出节点一样快。
3.线性表的数据类型决定了线性表的存储,长度与数据类型共同决定存储大小
4.int (*p)[4]:
()优先级高,*p首先是一个指针,类型是int,后面的 [4]表明这是一个指向一维整型数组的指针
int *p[4]:
[]优先级高,p[4] 首先是一个数组,类型是 int *,也就是这是一个存放4个整型指针的数组p
5.JavaScript Array 对象
数组属性:
constructor返回创建数组对象的原型函数。length设置或返回数组元素的个数。
prototype允许你向数组对象添加属性或方法。
Array 对象方法:
concat()连接两个或更多的数组,并返回结果。
copyWithin()从数组的指定位置拷贝元素到数组的另一个指定位置中。
entries()返回数组的可迭代对象。
every()检测数值元素的每个元素是否都符合条件。
fill()使用一个固定值来填充数组。
filter()检测数值元素,并返回符合条件所有元素的数组。
find()返回符合传入测试(函数)条件的数组元素。
findIndex()返回符合传入测试(函数)条件的数组元素索引。
forEach()数组每个元素都执行一次回调函数。
from()通过给定的对象中创建一个数组。includes()判断一个数组是否包含一个指定的值。
indexOf()搜索数组中的元素,并返回它所在的位置。
isArray()判断对象是否为数组。
join()把数组的所有元素放入一个字符串。keys()返回数组的可迭代对象,包含原始数组的键(key)。
lastIndexOf()搜索数组中的元素,并返回它最后出现的位置。
map()通过指定函数处理数组的每个元素,并返回处理后的数组。
pop()删除数组的最后一个元素并返回删除的元素。
push()向数组的末尾添加一个或更多元素,并返回新的长度。
reduce()将数组元素计算为一个值(从左到右)。
reduceRight()将数组元素计算为一个值(从右到左)。
reverse()反转数组的元素顺序。
shift()删除并返回数组的第一个元素。
slice()选取数组的一部分,并返回一个新数组。
some()检测数组元素中是否有元素符合指定条件。
sort()对数组的元素进行排序。
splice()从数组中添加或删除元素。
toString()把数组转换为字符串,并返回结果。
unshift()向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()返回数组对象的原始值。
链接:link.Array
6.二维数组A[0…m-1][0…n- 1]
元素A[i][j]的地址为
行优先:LOC(A[0][0]) + (in+j)
列优先:LOC(A[0][0]) + (jm+i)