using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace ConsoleApp5
{
class Array1
{
static void Main(string[] args)
{
//public int[] nums = new int[] {1,3,5 };
Array1 b = new Array1();
b.AddFirst(9);
b.AddFirst(7);
b.AddFirst(5);
b.AddFirst(4);
b.AddFirst(2);
b.AddFirst(8);
b.AddFirst(5);
b.IndexOf(2);
Console.WriteLine(b);
Console.Read();
}
private int[] data;
private int N;
public void Add(int index,int e)
{
//if (index < 0 || index > N)
// throw new ArgumentException("数组索引越界");
//if (N == data.Length)
// throw new ArgumentException("数组已满");
//N++;
//for (int i = index ; i<N ; i++)
//{
// data[i + 1] = data[i];
//}
//data[index] = e;
if (index < 0 || index > N)
throw new ArgumentException("数组索引越界");
if (N == data.Length)
throw new ArgumentException("数组已满");
N++;
for (int i = N - 1; i > index; i--)
{
data[i] = data[i - 1];
Console.WriteLine("daidaidai");
}
data[index] = e;
//N++;
}
public void AddLast(int e)
{
Add(N,e);
}
public void AddFirst(int e)
{
Add(0,e);
}
public Array1(int capacity)
{
data = new int[capacity];
N = 0;
}
public Array1()
{
data = new int[10];
N = 0;
}
public int Capicity
{
get { return data.Length; }
}
public int Count
{
get { return N; }
}
public bool IsEmpty
{
get { return N == 0; }
}
//public int IndexOf(int e)
//{
// for (int i = 0; i < N; i++)
// {
// if (data[i] == e)
// return i;
// }
// return -1;
//}
public int Min()
{
int i;
int min = data[0];
for (/*int */i = 0; i < N; i++)
{
if (data[i] <= min)
{
min = data[i];
}
}
return min;
}
public void RemoveAt(int index)
{
if (index < 0 || index >= N)
throw new ArgumentException("数组索引越界");
//int del = data[index];
//for(int i = N-1;i>=index;i--)
//{
// data[i] = data[i + 1];
// Console.WriteLine("斐斐");
//}
for (int i = index;i<N;i++)
{
data[i] = data[i + 1];
}
data[N-1] = default;
N--;
//data[index] =
//data[N - 1] = default;
}
//public void Remove(int x)
//{
// int index = x;
// if (index != -1)
// RemoveAt(index);
//}
public void IndexOf(int x)
{
for (int i = 0; i < N; i++)
{
if (data[i] == x)
{ RemoveAt(i); }
}
}
public override string ToString()
{
StringBuilder res = new StringBuilder();
res.Append(string.Format("Array1: count ={0} capicity{1}\n", N, data.Length));
res.Append("[");
for (int i=0;i<N;i++)
{
res.Append(data[i]);
if (i != N - 1)
res.Append("。");
}
res.Append("]");
return res.ToString();
}
}
}
对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素
最新推荐文章于 2023-07-21 21:20:54 发布