描述:介绍一维数组的创建和初始化方法,将一组学生姓名存储到一维数组中,并对其中的姓名进行修改,最后从控制台输出学生姓名,效果如图
解析(1)创建一维数组的语法格式
数组元素类型[ ] 数组名称= new 数组元素类型[元素个数n]{元素0,元素1,…,元素n-1};
花括号{}内的数据为数组元素初始化操作,如果不需要初始化,该操作可以省略。
(2)所有数组类型都是从Object.Array类型派生出来的,该类型提供了Length属性来获取数组的长度。
描述:主要介绍二维数组的创建方法和二维数组的赋值操作。 实例中首先创建了一个存储学生成绩的二维数组,然后随机生成了学生成绩并按学号递增的方式存储到二维数组中,最后输出所有学生的信息。效果如图:
解析:(1)二维数组创建格式
数组元素类型[ , ] 数组名称=new 数组元素类型[行数r,列数c];
矩形数组定义及引用时 注意是[ , ] 不是[ ][ ] 与C语言不同
(2)创建一个随机数生成器
Random random = new Random();
1.random.Next() --------------返回非负的一个随机数 返回类型为Int
2.random.Next(MaxValue)----------返回一个小于所指定最大值的非负随机数
(3)可通过GetLength方法获取二维数组行数和列数,传入参数0时获取的是行数,传入参数为1时获取的是列数。
描述:利用二维数组实现两个矩阵相乘的运算。讲过两个矩阵存储到两个二维数组中,然后讲矩阵相乘的结构存储到第三个数组中。矩阵相乘的运算结果如图
实现过程:(1)创建两个二维数组并为其赋值(使用随机数生成器)
解析:本题比较简单,不做过多解析。值得一提的是多维数组其实可以理解为多维向量。
描述:为了节约内存(在微型计算机上很重要),用矩形数组的话,如果需要存储日期,必须使用一个12行31列的二维数组,但是并不是所有的月份都是31天,所以势必存在存储空间的浪费。交错数组可以按每个月的天数决定元素的个数。按月存储日期效果如图。
(2)创建名为months的二维交错数组,并确定每月的天数。
(3)为months赋值,并输出其元素
解析:本题比较简单,不做深入解析。
交错数组定义的语法格式
元素类型[ ][ ] 数组名称= new 元素类型[行数][ ];
交错数组可以理解为一个元素类型为一维数组的一维数组。
(1)描述:本例主要介绍元素数量可以按需要动态变化的数组类型ArrayList,首先创建一个存储单个学生信息的结构体,然后利用ArrayList类型对学生信息进行动态添加,最后从控制台输出学生信息表。
描述:本例介绍泛型集合类型中一种List类型,实例中创建一个结构体存储学生信息,利用List类型存储学生信息表,并对学生信息表进行增添和删除。
补充:List类型声明和创建实例的语法格式
List<元素类型> 类型变量=new List<元素类型>();
本例使用了Add,RemoveAt方法增添删除元素,使用Insert方法在指定索引处添加新元素。
描述:创建中国的省市信息表,省下包含该省的市。用户输入要查询的省,控制台输出该省的城市。
效果如图:
实现:(1)使用字典Dictionary类型,创建省份列表。省份名字对应键,省份值设置为List类型的城市表。
Dictionary类型中的元素包含了键和值,所以既不是键也不是值, 元素类型为 KeyValuePair
(3)查询指定省份的信息
ContainsKey(Key) 方法判断 表中是否有所要查询的键。
描述:本例主要讲解具体队列结构的泛型类型Queue的使用方法。
以模拟舞伴配对为例。在舞会上,男士和女士各排成一队,组成两队等待跳舞的队伍。当舞曲开始的时候,男女两支等待队伍从头部开始各出一名男士、女士结成舞伴,直到一支队伍全部配对无一人剩下为止。剩下未配对的队人留在等待队伍中,下次舞曲先参与配对。舞曲完成后,跳舞的队伍回到等待队伍的末尾等待下一轮舞曲的开始。
队列结构的特点是先进队的元素先出队,后进队的元素后出队。因此**,队列中的元素从队列尾部进入,从头部取出。**
实现:(1)初始化男士和女士等待队列。
Queue类型的Enqueue方法****将一个元素添加到队列尾部。Queue类型的元素增加一个
Queue类型的Dequeue方法从队列的头部取出一个元素。Queue类型的元素减少一个
Count属性值为Queue元素数量 相当于数组中的Length
(3)第n首舞曲开始,男女舞伴配对
描述:本例介绍具有栈结构的泛型集合类型Stack的使用,实例从控制台输入一个括号表达式,然后检测括号表达式中的括号匹配是否正确。
栈结构的特点是先进栈的元素后出栈,后进栈的元素先出栈。因此栈中元素的进出都发生在栈顶。
实现:(1)从控制台输入括号表达式。在main函数中添加代码
括号匹配检测的算法思想是遍历括号表达式的字符,如遇到正括号’[’ ‘(’ ‘{’,将其进栈(Push方法),
继续遍历遇到反括号,将栈顶的正括号取出(Pop方法)与其匹配,若不匹配则说明括号匹配错误(一个反括号总是与其前面的最近的正括号配对,用进栈出栈恰好可以描述 最近)
括号不匹配有三种可能 ①正反括号数目一样,但是不匹配
②正括号更多 ③反括号更多