Java基础复习笔记04数据结构线性表.doc
文本预览下载声明
Java基础复习笔记04数据结构-线性表
刘岩
Email:suhuanzheng7784877@163.com
线性表
线性表是数据结构的一种逻辑结构,其实所有的逻辑数据结构都可以用2类物理实现方式去实现,一个是物理存储连续的顺序结构,另一个就是物理存储不连续的链式结构。线性表是指有n个元素组成的有序序列,这n个元素具有相同的结构。
线性表的操作
线性表的主要操作是增加元素、删除索引处元素、在索引处添加元素、查找索引处元素、替换索引处元素、清空所有元素
看如下代码
package dateStructer.list;
/**
* 自实现的arrayList
* @author liuyan
*
* @param E
*/
public class MyArrayListE implements ListE {
//默认的数组长度
private final int DefSize = 16;
//临时变量数组
private Object[] objects;
//记录实实在在的元素个数
private int elementSize;
public MyArrayList() {
objects = new Object[DefSize];
}
/**
* 增加元素,实际上就是往最后一位出入数据
*/
@Override
public boolean add(E e) {
add(elementSize, e);
return true;
}
/**
* 按位索引插入元素
*/
@Override
public void add(int index, E element) {
if (index == elementSize) {
objects[index] = element;
elementSize++;
return;
}
for (int i = elementSize - 1; i = 0; i--) {
if (i == index) {
int movedSize = elementSize - i - 1;
System.arraycopy(objects, index + 1, objects, index, movedSize);
objects[index] = element;
elementSize++;
}
}
}
/**
* 清除所有元素
*/
@Override
public void clear() {
for (int i = 0; i elementSize; i++) {
objects[i] = 0;
}
elementSize = 0;
}
/**
* 判断集合是否包含了某个元素
*/
@Override
public boolean contains(Object o) {
for (Object object : objects) {
if (object != null object.equals(o)) {
return true;
}
}
return false;
}
/**
* 获得某位置索引的元素
*/
@Override
public E get(int index) {
for (int i = 0; i elementSize; i++) {
if (i == index) {
return (E) objects[index];
}
}
return null;
}
/**
* 实现元素定位
*/
@Override
public int indexOf(Object o) {
for (int i = 0; i elementSize; i++) {
if (o.equals(objects[i])) {
return i;
}
}
return -1;
}
/**
* 是否是空集合
*/
@Override
public boolean isEmpty() {
if (elementSize == 0) {
return true;
}
return false;
}
@Override
public int lastIndexOf(Object o) {
if (objects == null || objects.length == 0)
显示全部