一、顺序表

##顺序表的实现

//顺序表
class SequenceList{
	int data[];
	int len;
}

1. 插入操作

	//插入
	public boolean insert(int p,int k) {
		if(p>len&&p<0)
			return false;
		if(len>data.length)
			return false;
		for (int i = len; i > p; i--) {
			data[i]=data[i-1];
		}
		data[p]=k;
		len++;
		return true;
	}

2. 删除操作

	//删除
	public boolean delete(int p) {
		if(p<0&&p>len) {
			return false;
		}
		if(len>data.length) {
			return false;
		}
		for(int i=p;i<len;i++) {
			data[i]=data[i+1];
		}
		len--;
		return true;
	}

3. 按值查找操作

	//查找
	public int findElem(int k) {
		for (int i = 0; i < len; i++) {
			if(data[i]==k)
				return i;
		}
		return 0;
	}

4. 时间复杂度

题目巩固:

①在一个长度为n的顺序表中删除第i个元素时,需要向前移动()个元素。
②找到顺序表中最小值,并打印;
③将顺序表中所有元素逆置;
④删除有序顺序表中所有重复的值,使得表中所有元素的值均不相同。

	//删除有序顺序表中的重复元素
	public void deleteSame() {
		for (int i = 0; i < len-1; i++) {
			if(data[i]==data[i+1]) {
				delete(i+1);
				i--;
			}
		}
	}

⑤删除顺序表中所有重复的值,使得表中所有元素的值均不相同。

	//删除顺序表中的重复元素
	public void deleteSame2() {
		
		int[] arr=new int[23];
		for (int i = 0; i < len; i++) {
			arr[data[i]]++;
		}
		
		System.out.println();
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]!=0)
				System.out.print(i+" ");
		}
		
	}