数组
定义:一个可以储存多个同一类型数据的集合。
1、可以有一维数组、多维数组或者交叉数组。(交叉数组是数组的数组)
class TestArraysClass
{
static void Main()
{
// 声明一维数组并初始化,大小为5
int[] array1 = new int[5];
// 声明一维数组并赋初值.
int[] array2 = new int[] { 1, 3, 5, 7, 9 };
// 隐式声明数组
int[] array3 = { 1, 2, 3, 4, 5, 6 };
// 声明二维数组
int[,] multiDimensionalArray1 = new int[2, 3];
// 隐式声明二位数组秉赋初值
int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
//声明交叉数组
int[][] jaggedArray = new int[6][];
//交叉数组的元素也需要初始化
jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
}
}
2、创建数组并将其实例化后,其数组的大小和维度就不能再改变。
3、数组从0开始,索引最大为n-1
4、数组可以使用foreach
储存结构
要想实现队列和栈,需要了解储存结构,储存结构主要分为顺序储存和链式储存。
优缺点:
1、顺序储存需要分配一大块连续的空间,所以通常来说容易形成内存碎片,浪费内存空间。而链式储存每一个数据都是一块单独的空间,并不连续,所以可以节省空间。
2、顺序储存储存密度大,而且内存地址间隔是明确的,所以存取速度快且可以随机存取。而链式储存储存密度低,内存地址间隔并不准确,可以说是杂乱无章,所以存取速度慢且只能进入点顺序存取。
3、顺序储存的数据关联性强,进行排序操作经常需要全局变动,而链式储存数据关联性弱,只要变动指针指向地址即可。
4、顺序储存所分配的空间是固定的,如果数据溢出,需要重