太原网站制作推广,最近韩国电影片免费韩国在线观看,京东网页版,马云做黄页网站时候线性表的实现方式 顺序表 线性表的顺序存储是指在内存中用一块地址连续的空间依次存放线性表的数据元素#xff0c;用这种方式存储的线性表叫顺序表。
特点#xff1a;表中相邻的数据元素在内存中存储位置也相邻。
顺序表接口实现#xff1a;
方法名参数返回值描述GetLen…线性表的实现方式 顺序表 线性表的顺序存储是指在内存中用一块地址连续的空间依次存放线性表的数据元素用这种方式存储的线性表叫顺序表。
特点表中相邻的数据元素在内存中存储位置也相邻。
顺序表接口实现
方法名参数返回值描述GetLength无int返回线性表的当前元素个数长度。Clear无void清空线性表重置内部元素计数为0释放存储空间。IsEmpty无bool判断线性表是否为空元素个数为0返回true否则返回false。AddT itemvoid在表尾追加元素。若容量不足自动扩容。Insert T item, int index void在指定索引处插入元素。索引需满足 0 ≤ index ≤ count否则抛出异常。Deleteint indexT删除并返回指定索引的元素。索引需满足 0 ≤ index count否则抛出异常。GetEleint indexT获取指定索引的元素。索引越界时抛出异常。索引器int indexT通过索引访问元素如 list[0]。索引越界时抛出异常。LocateT valueint返回第一个与value相等的元素索引未找到返回-1。
代码 IList.cs
internal interface IListT
{int GetLength();//求长度void Clear(); //清空bool IsEmpty(); //判断是否为空void Add(T item);// 添加void Insert(T item ,int index);//插入T Delete(int index);//删除T GetEle(int index);//取表元T this[int index] { get; }//定义一个索引器 获取元素int Locate(T value); //按值查找
}
顺序表的实现
代码的实现SeqList.cs
1、定义字段
private T[] data; //用来存储数据private int count ;//表示存了多少个数据
2、实现构造函数
(1) 实现构造函数 public SeqList(int size) //size数组的最大容量{data new T[size]; // 初始化数组count 0; // 元素个数初始为0}
(2) 默认构造函数委托调用
public SeqList():this(10) //默认构造函数 容量是10
{}
3、添加基础方法
(1) 获取当前元素数量
public int GetLength()
{return count;
}
(2) 判断是否为空
public bool IsEmpty()
{return count 0;
}
(3) 清空列表
public void Clear()
{count 0;
}
4. 实现核心操作
(1) 添加元素到末尾
public void Add(T item)
{if(count data.Length) //当前数组已经存满{Console.WriteLine(前顺序表已经存满不允许再存入);}else{data[count] item;count;}
} (2) 插入元素到指定位置
public T GetEle(int index)
{if(index0 indexcount-1){return data[index];}else{Console.WriteLine(索引不存在);return default(T);}
}
(3) 删除元素按索引
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;
}
5. 实现访问与查找
(1) 按索引获取元素
public T GetEle(int index)
{if(index0 indexcount-1){return data[index];}else{Console.WriteLine(索引不存在);return default(T);}
}
(2) 索引器
public T this[int index]
{get { return GetEle(index); }
}
(3) 按值查找索引
public int Locate(T value)
{for (int i 0; i count; i){if (data[i].Equals(value)){return i;}}return -1;
}
代码使用Program.cs
namespace _001_List
{internal class Program{static void Main(string[] args){SeqListstring seqList new SeqListstring();seqList.Add(123);seqList.Add(145);seqList.Add(167);Console.WriteLine(GetEle:seqList.GetEle(0));Console.WriteLine(this:seqList[0]);seqList.Insert(777, 1);for (int i 0;iseqList.GetLength(); i){Console.Write(seqList[i] );}Console.WriteLine(seqList:);seqList.Delete(0);for (int i 0; i seqList.GetLength(); i){Console.Write(seqList[i] );}Console.WriteLine(seqList:);seqList.Clear();Console.WriteLine(seqList.GetLength()); Console.ReadKey();}}
}输出结果