java数据结构之线性表代码实现

原文: java数据结构之线性表代码实现代码下载地址: http://www.zuidaima.com/share/1550463283186688.htm

线性表按顺序存储 里面有注释

LinearList.java
package com.zuidaima.datestruture.base;

/**
*@author www.zuidaima.com
**/
public interface LinearList {
  //判断线性表是不是为空
	public boolean isEmpty();
	//返回线性表容量大小
	public int size();
	//通过线性表的索引号来获得这个元素
	public Object get(int index);
	//要修改的索引和元素类容
	public void set(int index,Object element);
	// 向线性表添加元素
	public boolean add(Object element);
	//添加元素的位置和添加元素的内容
	public boolean add(int index,Object element);
	//移除元素
	public Object remove(int index);
	//清除线性表中元素的方法
	public void clear();
}
SequenceList.java
package com.zuidaima.datestruture.base;

/**
 * 线性表按顺序存储 add 
 * Object为传入的内容 int为传入的索引
 * @author www.zuidaima.com
 *
 */
public class SequenceList implements LinearList {
	private Object [] slist;
	private int size;
	public SequenceList() {
		this(3);
	}
	public SequenceList(int length) {
		if(length==0){
			this.slist=new Object[3];
		}
		this.slist=new Object[length];
	}
//返回线性表的长度
	public boolean isEmpty() {
		if(size==0){
			return true;
		}else{
			return false;
		}
	}
	//返回线性表容量大小
	public int size() {
		
		return size;
	}
	public Object get(int index) {
		return (Object)slist[index];
	}
	//修改index要修改的的索引  element要修改的内容
	public void set(int index, Object element) {
		cheIndex(index);
		slist [index] = element; 
	}
	
	
	public boolean add(Object element) {
		
		return add(size,element);
	}
//验证索引是不是符合要求
	private void cheIndex(int index){
		if(index>size||index<0 throw="" new="" indexoutofboundsexception="" index="" index="" size="" size="" index="" element="" public="" boolean="" add="" int="" index="" object="" element="" cheindex="" index="" if="" index="">size||index<0){
			throw new IndexOutOfBoundsException("index"+index+",size"+size);
		}
		if(size==slist.length){
			Object[] temp=slist;
			this.slist=new 	Object[temp.length*2];
			for(int j=0;j<temp length="" j="" this="" slist="" temp="" for="" int="" i="size-1;i">=index;i--){
			slist[i+1]=slist[i];
		}
		slist [index] =element;
		size++;
		return true;
	}

	删除index要删除的的索引 
	public Object remove(int index) {
		cheIndex(index);
		Object old = (Object)slist[index];
		//依次向后挪动
		for(int i=index;i<size-1;i++){
			slist[i]=slist[i+1];
		}
		//释放最后1个元素
		slist[--size]=null;
		return old;
	}

	//清除线性表
	public void clear() {
		if(size!=0){
			for(int i=0;i<size;i++){
				slist[i]=null;
			}
			size=0;
		}

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
//		SequenceList s = new SequenceList();
//		System.out.println("Is Empty?"+s.isEmpty());
//		System.out.println("Size:"+s.size);
//		s.add("Jack");
//		s.add("John");
//		s.add(0,"Lily");
//		s.add("Lucy");
//		s.set(2, "LiLei");
//		s.remove(2);
//		s.clear();
//		System.out.println("Is Empty?"+s.isEmpty());
//		System.out.println("Size:"+s.size);
		
//        System.out.println(s.get(0));
//        System.out.println(s.get(1));
//        System.out.println(s.get(2));
	}

}
</temp><!--0-->

标签:java数据结构线性表

话题:语言基础
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值