可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。
数组名或者所占内存的第一个内存地址
数组就是一组数据的集合
其表现形式就是内存中的一段连续的内存地址
数组名称其实就是连续内存地址的首地址
2、关于js中的数组特点
数组定义时无需指定数据类型
数组定义时可以无需指定数组长度
数组可以存储任何数据类型的数据(比如说一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的)
//表示语法模拟(正则对象),表示模拟RegExp类的实例(=new RegExp())
在js中,每一个数组对象都可以调用length属性,它表示数组对象下共有几个数组元素
在js中,数组不是数据类型,数组的数据类型其实就是对象
Js中的For.....in语句可以实现对一个对象的所有属性的遍历
也可以使用for...in语句实现对一个数组的所有元素的遍历
原理:数组中有几个元素,for..in语句就循环执行多少次
每次执行时,将当前数组元素的下标存放到变量i中
在js中,文本下标的数组元素,不计入数组长度
以文本下标形式添加到数组,实际是以属性形式添加到数组对象中的
遍历带有文本下标的数组:
保证一周更两篇吧,以此来督促自己好好的学习!代码的很多地方我都给予了详细的解释,帮助理解。好了,干就完了~加油!
声明:本python数据结构与算法是imooc上liuyubobobo老师java数据结构的python改写,并添加了一些自己的理解和新的东西,liuyubobobo老师真的是一位很棒的老师!超级喜欢他~
如有错误,还请小伙伴们不吝指出,一起学习~
python中不存在泛型的说法,所以大家可以向这个动态数组添加任意类型的元素,
因为底层是python的list,很方便吧~以后的数据结构中就不说明啦。
占用一段连续的内存空间,支持随机(索引)访问,且时间复杂度为O(1),基本不用我BB了,最简单的数据结构- -
添加元素时间复杂度:O(n)
删除元素时间复杂度:O(n)
"""让我们的Arr类支持索引操作"""
"""返回数组有效元素的个数"""
"""返回当前数组的容量"""
"""判断当前数组是否为空"""
向数组中添加一个元素,注意数组占用的是一段连续的内存空间,所以在添加元素后,
数组还是要保证这个特点的,因此需要将后面的元素都向后挪一个位置,而且要注意要先从
尾部开始挪,防止元素之间的覆盖
获得索引index处的元素
将索引为index的元素的值设为elem
查看数组中是否存在元素elem,最好不要传入一个浮点数,你懂得。。
在数组中查找元素,并返回元素所在的索引。(如果数组中存在多个elem,只返回最左边elem的索引)
:return: 元素所在的索引,没找到则返回-1(无效值)
找到值为elem全部元素的索引
:return: 一个新建的数组(我们自己实现的),值为全部elem的索引
删除索引为index的元素。index后面的元素都要向前移动一个位置
:return: 位于该索引的元素的值
删除数组中为elem的元素,如果数组中不存在elem,那么什么都不做。
如果存在多个相同的elem,只删除最左边的那个
删除数组内所有值为elem的元素,可以用递归来写,这里我用的迭代的方法。elem不存在就什么都不做
"""对数组元素进行打印"""
数组容量放缩至new_capacity,私有成员函数
0
若有还可以改进、优化的地方,还请小伙伴们批评指正!