顺序表(线性表)操作的思想及实现之C#版
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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位置元素的值进行颠倒即可,于是便有了以下代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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++; } }} |
好吧,顺序表的部分常用操作就介绍到这里~生活开心,学习愉快~
浙公网安备 33010602011771号