用C#实现顺序表的基本运算:建立顺序表、输出顺序表、求顺序表长度、按序号查找元素、按元素查找序号、插入元素、删除元素;
时间: 2024-09-11 08:15:40 浏览: 37
在C#中,顺序表通常是通过数组来实现的。下面将介绍如何使用C#实现顺序表的基本运算。
1. 建立顺序表:创建一个数组来存储顺序表的元素。
```csharp
public class SeqList<T>
{
private T[] _array; // 存储顺序表元素的数组
private int _size; // 顺序表当前大小
public SeqList(int capacity)
{
_array = new T[capacity];
_size = 0;
}
}
```
2. 输出顺序表:遍历数组并打印每个元素。
```csharp
public void PrintList()
{
for (int i = 0; i < _size; i++)
{
Console.Write(_array[i] + " ");
}
Console.WriteLine();
}
```
3. 求顺序表长度:返回顺序表当前元素数量。
```csharp
public int Length()
{
return _size;
}
```
4. 按序号查找元素:根据给定的序号返回对应的元素。
```csharp
public T GetElement(int index)
{
if (index < 0 || index >= _size)
{
throw new ArgumentOutOfRangeException("序号超出范围");
}
return _array[index];
}
```
5. 按元素查找序号:返回元素在顺序表中的位置。
```csharp
public int LocateElement(T element)
{
for (int i = 0; i < _size; i++)
{
if (_array[i].Equals(element))
{
return i;
}
}
return -1; // 未找到返回-1
}
```
6. 插入元素:在指定位置插入新元素。
```csharp
public void Insert(int index, T element)
{
if (index < 0 || index > _size)
{
throw new ArgumentOutOfRangeException("插入位置不合法");
}
if (_size >= _array.Length)
{
Resize();
}
for (int i = _size; i > index; i--)
{
_array[i] = _array[i - 1];
}
_array[index] = element;
_size++;
}
```
7. 删除元素:删除指定位置的元素。
```csharp
public void Delete(int index)
{
if (index < 0 || index >= _size)
{
throw new ArgumentOutOfRangeException("删除位置不合法");
}
for (int i = index; i < _size - 1; i++)
{
_array[i] = _array[i + 1];
}
_size--;
}
```
在顺序表的操作中,如果数组空间不足,可能需要对数组进行扩容操作,即`Resize()`方法,这里没有给出具体实现。