用Java实现顺序表的移动、删除、查询等基本操作

代码如下:

public class List {
	public int [] array;
	public int usedSize;
	
	public List() {
		this.array=new int [10];
		this.usedSize=0;          //usedSize的值如何确定?
		int array[]= {2,3,8,10,4};
		
	}
	public void display() {     //打印顺序表中的元素
		for(int i=0;i<this.usedSize;i++) {
			System.out.printf(this.array[i]+" ");
		}		
	}
	public int add(int pos,int data) {          //在顺序表中插入一个元素
		//这里添加一个判断数组是否为空的
		if(pos<0||pos>this.usedSize-1)
			return -1;            //当出现超出情况时如何扩容?
		else {
			for(int i=this.usedSize-1;i>=pos;i--) {
				this.array[i+1]=this.array[i];
			}
			this.array[pos]=data;
			this.usedSize++;      //这里usedSize需要this吗?(我觉的需要,不然它表示的是类中声明的变量)
			return 0;
		}
	}
	public boolean contains(int tofind) {       //判断某个数值是否在顺序表中
		int count=0;                 //好像不需要这个count
		for(int i =0;i<this.usedSize;i++) {
			if(this.array[i]==tofind)
				count=1;
			}
		if(count==1)
			return true;
		else
			return false;
	}
	public int search(int tofind) {         //找出指定数值的下表
		int count=-1;             //如何让代码不要count
		for(int i=0;i<this.usedSize-1;i++) {
			if(this.array[i]==tofind)
				count=i;
		}
		if(count==-1)
			return -1;
		else
			return count;
	}
	public int getpos(int pos) {         //打印指定位置的元素数值
		if(pos<0||pos>=this.usedSize) {
			System.out.printf("pos不存在");
			return -1;
		}
		else{
			return this.array[pos];     //这个地方好像少个打印操作
		}
	}
	public void setPos(int pos,int value) {       //修改某个位置的值
		if(pos<0||pos>=this.usedSize) 
			System.out.printf("pos值不存在!");
		else {
			this.array[pos]=value;
		}
	}
	public void remove(int toRemove) {     //删除指定位置的值
		int idenx=this.search(toRemove);
		if(idenx==-1)
			System.out.printf("数值错误");
		else {
			for(int i=idenx;i<usedSize-1;i++) 
				this.array[i]=this.array[i+1];
			this.usedSize--;
			
		}
		
	}
	public int size() {        //打印出顺序表长度
		return this.usedSize;    //我觉的有毛病,哈哈。这里好像也少个打印操作
	}
	public void clear() {     //清除顺序表
		this.usedSize=0;
	}
	public static void mian(String[] args) {
		List list=new List();
		list.display();
		list.add(7, 100);
		list.contains(17);
		list.search(10);
		list.getpos(3);
		
	}		
}

代码可能有点问题,后期会修改的,哈哈哈。
加油!我要进字节!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值