原文:
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-->
话题:语言基础