线性表的顺序表示

顺序表的定义

线性表的顺序存储又称顺序表.它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使逻辑上相邻的两个元素在物理位置上也相邻。

public class InitList<E> {// 定义线性表	
		int MaxSize = 50;
		Object[] data = new Object[MaxSize];
		int length = 0;
			
		public Boolean Insert(Object e,int i) {// 定义插入方法
			if(i < 1 || i > MaxSize) {
				return false;
			}// 判断i的范围是否有效
			if (length >= MaxSize) {
				return false;
			}// 当前存储已满,不能插入
			for (int j = length;j >= i;j--) {
				data[j] = data[j-1];
			}// 将第i个元素及之后的元素后移
			data[i -1 ] = e;//在位置i处放e
			length++;// 线性表长度加1
			return true;
		}
		
		public Boolean Delete(int i) {// 定义删除方法
			if(i < 1 || i > length) {
				return false;
			}// 判断i的范围是否有效
			System.out.println(data[i - 1]);
			for(int j = i; j <length ;j++) {
				data[j-1] = data[j];
			}// 将第i个位置后的元素前移
			length--;// 线性表长度减1
			return true;
		}
		
		public int LocateElem(Object e) {// 按值查找
			for(int i = 0; i < length ; i++) {
				if(data[i] == e) {
					return  i+1;
				}
			}
			return 0;
		}
		
		public void Printf() {// 输出线性表
			System.out.println("打印成功");
			for(int i = 0 ; i < length ; i++){
				System.out.print(data[i]);
			}
			System.out.println();
		}	
}

顺序表的使用

public static void main(String[] args) {
		// TODO Auto-generated method stub
		InitList<String> SqList = new InitList<>();
		SqList.Insert("a",1);
		SqList.Printf();
		
		SqList.Delete(1);
		SqList.Printf();
		
		if (SqList.LocateElem("a") > 0) {
			System.out.println(SqList.LocateElem("a"));
		}else {
			System.out.println("查找失败");
	 	}
	}
posted @ 2023-01-06 19:01  纸箱丶战机  阅读(35)  评论(0编辑  收藏  举报