《C#数据结构与算法》–2020 最新精讲版_2-4 包含、搜索、删除 笔记

《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);
        }

三、程序总结

免费 总程序链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值