《C#数据结构与算法》–2020 最新精讲版:2-4 包含、搜索、删除 笔记
文章目录
学习视频以及前言回顾
《C#数据结构与算法》–2020 最新精讲版:2-4 包含、搜索、删除 视频
《C#数据结构与算法》–2020 最新精讲版:2-3 获取、修改、打印 笔记
一、数组的包含及查询
1、包含
判断程序中是否有元素e,采用for循环进行查找
代码如下:
//查找数组中是否有元素e,有则输出true,无则输出false
public bool Contains(int e)
{
for (int i = 0; i < N; i++)
{
if (data[i] == e)
{
Console.WriteLine("在位置{0}找到了",i);
Console.ReadKey();
return true;
}
}
Console.WriteLine("没找到");
Console.ReadKey();
return false;
}
只需要在主程序直接调用a.Contains(e);
就可以直接判断数组中是否有该元素。
2、查询
查询与包含方法形似。
代码如下:
//查找数组中是否有元素e,有则输出该元素所在的位置,无则输出-1
public int IndexOf(int e)
{
for (int i = 0; i < N; i++)
{
if (data[i] == e)
{
Console.WriteLine("在位置{0}找到了", i);
Console.ReadKey();
return i;
}
}
Console.WriteLine("没找到");
Console.ReadKey();
return -1;
}
二、删除
首先判断是否超出数组界限,如果没有则将index后一位对index位置的元素进行覆盖,后面的元素依次前移并覆盖前一位。
1、删除指定位置的元素
//将后面的元素向前移动并覆盖前一位
public int RemoveAt(int index)
{
if (index < 0 || index >= N)
throw new ArgumentException("数组索引越界");
int del = data[index];
for (int i = index + 1; i <= N - 1; i++)
data[i - 1] = data[i];
N--;
data[N] = default(int);
return del;
}
2、删除指定元素
删除指定元素是以搜索和删除指定位置的元素为基础,首先调用IndexOf,通过返回值判断,如果返回值不等于-1,则此数组中包含该元素,并给出了该元素所在位置,在通过调用RemoveAt,删除该位置的元素,达到删除指定元素的功能。
public void Remove(int e)
{
int index = IndexOf(e);
if (index != -1)
RemoveAt(index);
}