线性表的接口定义及使用

news/2025/1/10 18:01:03/

定义接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _001_线性表
{interface IListDS<T>//定义接口{int GetLength();void Clear();bool IsEmpty();void Add(T item);void Insert(T tiem, int index);T Delete(int index);T this[int index] { get; }T GetEle(int index);int Locate(T value);}
}

使用顺序表

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _001_线性表
{/// <summary>/// /// </summary>class Program{static void Main(string[] args){/// <summary>/// 使用BCL中的线性表/// 三个字符串具有索引的先后关系,可以通过索引访问元素/// </summary>//List<string> strList = new List<string>();//strList.Add("123");//0//strList.Add("456");//1//strList.Add("789");//2//Console.WriteLine(strList[1]);//strList.Remove("789");//移除//Console.WriteLine(strList.Count);//大小//strList.Clear();//清除//Console.WriteLine(strList.Count);//Console.ReadKey();//使用我们自己的顺序表SeqList<string> seqList = new SeqList<string> ();seqList.Add("123");seqList.Add("456");seqList.Add("789");Console.WriteLine(seqList.GetEle(0));Console.WriteLine(seqList[0]);//通过索引器seqList.Insert("777", 1);for(int i=0;i<seqList.GetLength ();i++){Console.Write(seqList[i] + " ");}Console.WriteLine();seqList.Delete(0);seqList.Clear();Console.WriteLine(seqList.GetLength());Console.ReadKey();}}
}

顺序表实现方式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _001_线性表
{//顺序表实现方式class SeqList<T> : IListDS<T>{private T[] data;//用来存储数据private int count = 0;//数据个数/// <summary>/// 构造方法/// </summary>/// <param name="size"></param>public SeqList(int size)//size是最大容量{data = new T[size];count = 0;}public SeqList ():this(10)//默认构造函数容量为10{}//public T this[int index] => throw new NotImplementedException();public void Add(T item){if(count == data.Length ){Console.WriteLine("当前顺序表已经存满");}else{data[count] = item;count++;}}public void Clear(){count = 0;}public T Delete(int index){T temp = data[index];for(int i=index+1;i<count;i++){data[i - 1] = data[i];}count--;return temp;}public T this[int index]{get { return GetEle(index); }}public T GetEle(int index){if(index >=0 && index <=count-1)//索引存在{return data[index];}else{Console.WriteLine("索引不存在");return default(T);}}public int GetLength(){return count;}public void Insert(T item, int index){for(int i=count-1;i>=index;i--)//从后往前遍历,防止数据被覆盖{data[i + 1] = data[i];}data[index] = item;count++;}public bool IsEmpty(){return count == 0;}public int Locate(T value){for(int i=0;i<count;i++){if(data[i].Equals (value )){return i;}}return -1;}}
}


http://www.ppmy.cn/news/1562032.html

相关文章

在离线环境中安装 `.rpm` 包的步骤

在一些环境中&#xff0c;可能无法直接通过网络安装软件包。特别是在没有互联网连接的情况下&#xff0c;我们仍然可以手动下载 .rpm 安装包并进行离线安装。本文将介绍如何在离线环境中安装多个 .rpm 包&#xff0c;确保软件的顺利安装和依赖关系的处理。 1. 将 .rpm 文件复制…

macOS 如何修改 PATH 环境变量 ?

对于希望从终端管理命令行工具和脚本的可访问性的用户来说&#xff0c;在 macOS 上编辑 PATH 环境变量是必不可少的。在最近的版本中&#xff0c;macOS 已经从使用 bash shell 作为默认 shell 转变为使用 zsh&#xff0c;因此了解如何在这两个 shell 中编辑 PATH 是很重要的。 …

RabbitMQ-SpringAMQP使用介绍

RabbitMQ 1. Spring AMQP1.1 引入依赖1.2 消息发送1.3 消息接收1.4 WorkQueue模型1.4.1 实例代码1.4.2 能者多劳1.4.3 总结 1.5交换机1.6 Fanout交换机&#xff08;广播&#xff09;1.7 Direct交换机&#xff08;订阅&#xff09;1.8 Topic交换机&#xff08;通配符订阅&#x…

webrtc之rtc::ArrayView<const uint8_t>

rtc::ArrayView<const uint8_t> 是 WebRTC&#xff08;或其他基于 rtc 命名空间的库&#xff09;中常见的一个类型&#xff0c;它通常用于表示一块 只读的内存区域&#xff0c;该内存区域由一系列 uint8_t 类型&#xff08;无符号 8 位整数&#xff09;元素组成。 1. rt…

标准应用 | 2025年网络安全服务成本度量实施参考

01 网络安全服务成本度量依据相关新变化 为了解决我国网络安全服务产业发展中面临的服务供需两方对于服务成本组成认知偏差较大、网络安全服务成本度量缺乏依据的问题&#xff0c;中国网络安全产业联盟&#xff08;CCIA&#xff09;组织北京赛西科技发展有限责任公司、北京安…

spring boot启动源码分析(三)之Environment准备

上一篇《spring-boot启动源码分析&#xff08;二&#xff09;之SpringApplicationRunListener》 环境介绍&#xff1a; spring boot版本&#xff1a;2.7.18 主要starter:spring-boot-starter-web 本篇开始讲启动过程中Environment环境准备&#xff0c;Environment是管理所有…

DFS之剪枝

常用减枝顺序&#xff1a; 优化搜索顺序&#xff1a;大部分情况下&#xff0c;我们应该优先搜索分支较少的结点排除等效冗余可行性剪枝最优性剪枝最优化搜索&#xff08;DP&#xff09; 165. 小猫爬山 翰翰和达达饲养了 N N N 只小猫&#xff0c;这天&#xff0c;小猫们要去…

《零基础Go语言算法实战》 【题目 1-15】字符串的比较

《零基础Go语言算法实战》 【题目 1-15】字符串的比较 请用 Go 语言实现一个算法&#xff0c;在不使用额外存储结构的条件下判断一个字符串的所有字 符是否全都相同&#xff0c;字符串的长度不能超过 3000。 【解答】 ① 思路。 本题需要实现一个算法来判断字符串中的所有…