博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二章线性表
阅读量:6678 次
发布时间:2019-06-25

本文共 4751 字,大约阅读时间需要 15 分钟。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

当List对象的Item元素数量超过了Capacity的数量时,List对象会重新申请一块大小是原来Capacity的两倍的内存空间,然后将当前所有Item元素以及待添加元素复制到新的内存空间中。

interface IList
{ void Clear(); bool IsEmepty(); int GetLength(); T GetElem(int index); T this[int index] { get;} int Index(T Elem); void Insert(int index, T elem); void Add(T elem); void Delete(int index); }
class List
: IList
{ private T[] data; //定义一个T类型数组 private int count; //数组的长度(元素个数) public List() { } public List(int size) //分配内存大小 { data=new T[size]; count = 0; } ///
/// 通过牵引器获取T /// ///
///
public T this[int index] { get { if (count==0) { Console.WriteLine("空表不存在数据"); } if (0<=index&&index<=count-1) { return data[index]; } else { Console.WriteLine("index超出范围"); } return default(T); } } public void Add(T elem) { if (count>data.Length) { Console.WriteLine("数组容量溢出"); } else { data[count] = elem; count++; } } public void Clear() { count = 0;//空表data.length=0 } public void Delete(int index) { if (count==0) { Console.WriteLine("空表删除不了"); return; } if (index<0||index>=count) { Console.WriteLine("index{0}位置不合法,删除不了",index); return; } if (index==count-1) { System.Collections.Generic.List
newList=new System.Collections.Generic.List
(data); newList.RemoveAt(index); data = newList.ToArray(); count--; return; } for (int i = index+1; i < count; i++) { data[i-1] = data[i ]; } count--; } public T GetElem(int index) { return this[index]; } public int GetLength() { return count; } public int Index(T Elem) { if (count<=0) { return -1; Console.WriteLine("空表"); } else { int temp=0; for (int i = 0; i < data.Length; i++) { if (data[i].Equals(Elem)) { temp = i; } } return temp; } } public void Insert(int index, T elem) { if (count > data.Length) { Console.WriteLine("数组容量溢出无法插入"); return; } if (index<0||index>count) { Console.WriteLine("index{0}插入位置不合法",index); return; } if (index==count ) { data[index] = elem; count++; return; } for (int i = count-1; i>=index; i--) { data[i+1] = data[i]; } data[index] = elem; count++; } public bool IsEmepty() { return count == 0; } }
class Program    {        static void Main(string[] args)        {                     IList
sum=new List
(5); Console.WriteLine(sum.IsEmepty()); Console.WriteLine(); Console.WriteLine(sum.GetLength()); sum.Add(10); sum.Add(20); sum.Add(30); sum.Add(40); sum.Add(50); Console.WriteLine("sum.GetLength()"+sum.GetLength()); Console.WriteLine("sum.GetElem()" + sum.GetElem(6)); for (int i = 0; i < sum.GetLength(); i++) { Console.Write(sum[i]+" "); } Console.WriteLine(); sum.Delete(3); for (int i = 0; i < sum.GetLength(); i++) { Console.Write(sum[i] + " "); } Console.WriteLine(); sum.Insert(4,100); for (int i = 0; i < sum.GetLength(); i++) { Console.Write(sum[i] + " "); } Console.ReadKey(); } }

转载地址:http://sdrxo.baihongyu.com/

你可能感兴趣的文章
python入门——热量转换 I
查看>>
使用@selector动态加载方法
查看>>
自制简单的linux 系统
查看>>
win10下cmake编译Android opencv库问题
查看>>
洛谷——P1190 接水问题
查看>>
Aix学习之ODM
查看>>
第二天的收获-----c中小问题
查看>>
【错误异常】 Maven出现错误No plugin found for prefix 'jetty' in the current
查看>>
扩展欧几里德算法
查看>>
openoffice启动8100端口
查看>>
cnetos 6.0下Chage的使用方法来提升系统安全级别
查看>>
tomcat启动没有8080端口
查看>>
ubuntu 16.04 安装lamp
查看>>
Javascript的匿名函数
查看>>
OC中类的属性与成员变量的区别
查看>>
SMTP命令邮件投递(无身份认证)
查看>>
Nginx + MySQL + PHP + Xcache + Memcached
查看>>
使用Windows live movie maker轻松与朋友分享视频
查看>>
我的友情链接
查看>>
数据库死锁的类型
查看>>