#2
寒风中的细雨2012-04-19 22:08
程序代码: /* * @文件名:Program.cs * @描 述:顺序表的基本操作 */ using System; public interface IListDS<T> { void Clear();//清空操作 bool IsEmpty();//判断线性表是否为空 void Append(T nItem);//附加操作 void Insert(T nItem, int nPos);//插入操作 void Delete(int nPos);//删除操作 T GetElem(int nPos);//取表元 int Locate(T nValue);//按值查找 void Print();//打印顺序表 } public class SeqList<T>:IListDS<T> { private int MAX_SIZE;//顺序表的容量 private int m_Len;//元素的个数 private T[] m_Data;//顺序表 //构造函数 public SeqList(int nSize) { m_Data = new T[nSize]; MAX_SIZE = nSize; m_Len = 0; } //索引器 public T this[int nIndex] { get { return m_Data[nIndex]; } set { m_Data[nIndex] = value; } } //容量属性 public int MaxSize { get { return MAX_SIZE; } set { MAX_SIZE = value; } } //获取顺序表的长度 public int GetLen { get { return m_Len; } } //清空顺序表 public void Clear() { m_Len = 0; } //判断线性表是否为空 public bool IsEmpty() { return m_Len == 0; } //附加操作 public void Append(T nItem) { //添加到顺序表的末尾 m_Data[m_Len++] = nItem; } //在指定的位置上进行插入操作 public void Insert(T nItem, int nPos) { if (nPos < 1 || nPos > m_Len) { Console.WriteLine("\t插入的位置不正确!"); Console.WriteLine(); } for (int i = m_Len; i >= nPos; --i) { m_Data[i] = m_Data[i - 1]; } m_Data[nPos - 1] = nItem; ++m_Len; } //在指定的位置进行删除操作 public void Delete(int nPos) { if (nPos < 1 || nPos > m_Len) { Console.WriteLine("\t删除的位置不正确!"); Console.WriteLine(); } for (int i = nPos-1; i < m_Len; ++i) { m_Data[i] = m_Data[i + 1]; } --m_Len; } //返回指定顺序表位置的值 public T GetElem(int nPos) { if (nPos < 1 || nPos > m_Len) { Console.WriteLine("\t删除的位置不正确!"); Console.WriteLine(); } return m_Data[nPos-1]; } //根据值查找元素的第一个位置 public int Locate(T nValue) { for (int i = 0; i < m_Len; ++i) { if (nValue.Equals(m_Data[i])) { return i+1; } } return 0; } //输出顺序表的元素 public void Print() { for (int i = 0; i < m_Len; ++i) { Console.Write("{0} ", m_Data[i]); } Console.WriteLine(); } } public class App { public static void Main() { SeqList<int> list = new SeqList<int>(10); Console.WriteLine("Print list: "); list.Print(); Console.WriteLine("list maxsize is:{0}", list.MaxSize); Console.WriteLine(); Console.WriteLine("Append 1 2 3"); list.Append(1); list.Append(2); list.Append(3); Console.WriteLine("Print list: "); list.Print(); Console.WriteLine(); Console.WriteLine("At 1 position Insert 4"); list.Insert(4, 1); Console.WriteLine("Print list: "); list.Print(); Console.WriteLine(); Console.Write("Get list length:"); Console.WriteLine("{0} ", list.GetLen); Console.WriteLine(); Console.WriteLine("Find 2's position:"); Console.WriteLine("{0} ", list.Locate(2)); Console.WriteLine(); Console.WriteLine("Delete 2's position:"); list.Delete(list.Locate(2)); Console.WriteLine("Print list: "); list.Print(); Console.WriteLine(); } } |
此贴用于学习, 本人没有C#经验
所以希望加深数据结构的理解的同时去学习C#