SeqList类:
using System;
namespace seqlist.List {
public class SeqList<T> {
private T[] element;
//顺序表的数组容量
private int size;
//顺序表的长度
private int length;
public SeqList(int size) {
this.size = size < 64?64:size;
this.element = new T[this.size];
this.length = 0;
}
public SeqList(T[] value){
int n = value.Length;
if(n>0) {
this.size = 2*n;
this.element = new T[this.size];
for(int i=0;i<n;i++){
this.element[i] = value[i];
}
this.length = n;
}
}
public bool isEmpty() {
return this.length == 0;
}
public T get(int i) {
if(i>=0 && i<this.length) {
return this.element[i];
}
throw new Exception("指定的参数索引无效!!");
}
public bool set(int i, T x) {
if(i>=0 && i<this.length) {
this.element[i] = x;
return true;
}
return false;
}
public void insert(int i, T x) {
if(this.length == this.size) {
T[] temp = element;
element = new T[size * 2];
this.size = this.size * 2;
for(int j=0;j<size;j++){
this.element[j] = temp[j];
}
}
if(i<0) i=0;
if(i>length) i = length;
for(int j=length-1;j>=i;j--){
element[j+1] = element[j];
}
element[i] = x;
length ++;
}
public void insert(T x) {
this.insert(length,x);
}
public bool remove(int i, ref T old) {
if(length > 0 && i>=0 && i<length) {
old = element[i];
for(int j=i;j<length;j++) {
element[j] = element[j+1];
}
length --;
return true;
}
return false;
}
public int index(T value) {
for(int i=0;i<this.length;i++){
if(this.element[i].Equals(value)) {
return i;
}
}
return -1;
}
public bool contains(T value){
return index(value) >= 0;
}
public void clear() {
this.length = 0;
}
}
}
主程序类:
using System;
using seqlist.List;
namespace seqlist
{
class Program
{
static void Main(string[] args)
{
SeqList<int> sList = new SeqList<int>(64);
sList.insert(1);
sList.insert(2);
sList.insert(3);
sList.insert(4);
Console.WriteLine(sList.contains(3));
}
}
}
程序输出:
1.png