目录
数组
- 数组
- 链表
- 时间复杂度
- 栈与队列
- 集合和映射
- 有序数组和二分查找
静态数组:int[]
float[]
double[]
char[]
string[]
特点:数组一旦创建,其容量的大小是无法改变的 int[] arr = new int[20]
动态数组:ArrayList
List
(泛型) 下面是使用数组实现的动态数组。
class Array1
{
private T[] data; //存储元素的数组
private int N; //数组中的元素个数
//通过指定容量开辟数组空间
public Array1(int capacity)
{
data = new T[capacity];
N = 0;
}
//默认数组容量为10
public Array1() : this(10) { }
//获取数组容量的属性
public int Capacity
{
get { return data.Length; }
}
//获取数组元素个数的属性
public int Count
{
get { return N; }
}
//判断数组是否为空的属性
public bool IsEmpty
{
get { return N == 0; }
}
//在数组指定位置添加元素e
public void Add(int index,T e)
{
if(index N)
throw new ArgumentException("数组索引越界");
if (N == data.Length)
ResetCapacity(2 * data.Length);
for (int i = N-1; i >= index; i--)
data[i + 1] = data[i];
data[index] = e;
N++;
}
//在数组尾部添加元素e
public void AddLast(T e)
{
Add(N, e);
}
//在数组头部添加元素e
public void AddFirst(T e)
{
Add(0, e);
}
//获取指定位置的元素e
public T Get(int index)
{
if(index=N)
throw new ArgumentException("数组索引越界");
return data[index];
}
//获取数组头部的元素e
public T GetFirst()
{
return Get(0);
}
//获取数组尾部的元素e
public T GetLast()
{
return Get(N - 1);
}
//修改数组中的值
public void Set(int index,T newE)
{
if (index = N)
throw new ArgumentException("数组索引越界");
data[index] = newE;
}
//查询数组是否包含元素e
public bool Contains(int e)
{
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?