顺序表(线性表)操作的思想及实现之C#版
顺序表(线性表)操作的思想及实现之C#版
public int LocateElement(T item)
{
if ( this .intPointLast==-1)
{
Console.WriteLine( "there is no element in this linear list" );
return -1;
}
for ( int i = 0; i <= this .intPointLast; i++)
{
if ( this .tItems[i].Equals(item)) //若是自定义类型,则T类必须把Equals函数override
{
return i;
}
}
Console.WriteLine( "No found" );
return -1;
}
反转线性表Reverse()
继续吸取之前的经验教训,要对一个线性表进行操作,线性表必须不为空,因此第一步就是判断线性表是否为空,当线性表不为空的时候,我们该如何使用循环对其进行反转呢?先设定一个游标从起始位置,但是循环的终结点在哪里?经过分析我们可以知道,只需要将循环终结点设定在线性表长度一半的位置,然后将i位置的元素值与intPointLast-i位置元素的值进行颠倒即可,于是便有了以下代码:
public void Reverse()
{
if ( this .intPointLast == -1)
{
Console.WriteLine( "there is no element in this linear list" );
}
else
{
int i = 0;
int j = this .GetLength() / 2; //结果取下界整数用于循环
while (i<j)
{
T tmp = this .tItems[i];
this .tItems[i] = this .tItems[ this .intPointLast - i];
this .tItems[ this .intPointLast - i] = tmp;
i++;
}
}
}
好吧,顺序表的部分常用操作就介绍到这里~生活开心,学习愉快~
分类: C#专题 , 数据结构与算法
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于顺序表(线性表)操作的思想及实现之C#版的详细内容...