java学习第12天,顺序表(二)

package java11to20;

public class D12_SequentialList2 {
	int[] data;
	int length = 0;
	public static int MAX_LENGTH = 20;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] Array1 = { 1, 3, 5, 61, 11, 6, 8, 9, 11, 23, 115 };
		D11_SequentialList1 FirstList = new D11_SequentialList1(Array1);
		System.out.println("已经初始化列表:" + FirstList.toArrayString());
		System.out.println("列表为:" + FirstList.toArrayString());
		FirstList.reset();
		System.out.println("重置后列表:" + FirstList.toArrayString());

		int[] Array2 = { 1, 4, 6, 2, 1, 239, 8, 9, 11, 23, 115 };
		D12_SequentialList2 SecondList = new D12_SequentialList2(Array2);
		System.out.println("已经初始化列表:" + SecondList.toArrayString());
		System.out.println("不加\"toArrayString()\"输出的列表是:" + SecondList);

		int Value = 4;
		int Position = SecondList.locate(Value);
		System.out.println(String.format("第%s个位置的数是:%s", Value, Position));

		Value = 10;
		Position = SecondList.locate(Value);
		System.out.println(String.format("第%s个位置的数是:%s", Value, Position));

		Position = 2;
		Value = 6;
		SecondList.insert(Position, Value);
		System.out.println(String.format("插入数据%s到%s位置,列表为:%s", Value, Position, SecondList.toArrayString()));

		Position = 7;
		Value = 11;
		SecondList.insert(Position, Value);
		System.out.println(String.format("插入数据%s到%s位置,列表为:%s", Value, Position, SecondList.toArrayString()));

		Position = 3;
		SecondList.delete(Position);
		System.out.println(String.format("删除掉%s位置的数据后,新列表数据为:", Position, SecondList.toArrayString()));

		SecondList.reset();
		System.out.println("重置列表2后为:" + SecondList.toArrayString());
	}

	public D12_SequentialList2(int[] dataArray) {
		data = new int[MAX_LENGTH];
		length = dataArray.length;

		for (int i = 0; i < dataArray.length; i++) {
			data[i] = dataArray[i];
		}
	}

	public String toArrayString() {
		String result = "";

		if (length == 0) {
			return "empty";
		}

		for (int i = 0; i < length - 1; i++) {
			result += data[i] + ", ";
		}

		result += data[length - 1];// 去掉最后逗号

		return result;
	}

	public void reset() {
		length = 0;
	}

	public int locate(int paraValue) {
		int tempPosition = -1;

		for (int i = 0; i < length; i++) {
			if (data[i] == paraValue) {
				tempPosition = i;
				break;
			}
		}
		return tempPosition;
	}

	public boolean insert(int paraPosition, int paraValue) {
		if (length == MAX_LENGTH) {
			System.out.println("List full.");
			return false;
		}
		if ((paraPosition < 0) || (paraPosition > length)) {
			System.out.println("The position " + paraPosition + " is out of bounds.");
			return false;
		}
		for (int i = length; i > paraPosition; i--) {
			data[i] = data[i - 1];
		}
		data[paraPosition] = paraValue;
		length++;

		return true;
	}

	public boolean delete(int paraPosition) {
		if ((paraPosition < 0) || (paraPosition >= length)) {
			System.out.println("The position " + paraPosition + " is out of bounds.");
			return false;
		}
		for (int i = paraPosition; i < length - 1; i++) {
			data[i] = data[i + 1];
		}
		length--;

		return true;
	}
}

输出结果:

已经初始化列表:1, 3, 5, 61, 11, 6, 8, 9, 11, 23, 115
列表为:1, 3, 5, 61, 11, 6, 8, 9, 11, 23, 115
重置后列表:empty
已经初始化列表:1, 4, 6, 2, 1, 239, 8, 9, 11, 23, 115
不加"toArrayString()"输出的列表是:java11to20.D12_SequentialList2@4926097b4个位置的数是:110个位置的数是:-1
插入数据62位置,列表为:1, 4, 6, 6, 2, 1, 239, 8, 9, 11, 23, 115
插入数据117位置,列表为:1, 4, 6, 6, 2, 1, 239, 11, 8, 9, 11, 23, 115
删除掉3位置的数据后,新列表数据为:1, 4, 6, 2, 1, 239, 11, 8, 9, 11, 23, 115
重置列表2后为:empty
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值