数据结构顺序表的定义(Java)
来源:互联网 发布:数码宝贝网络侦探进化 编辑:程序博客网 时间:2024/05/18 18:02
定义顺序表的接口
public interface ILinarList<E> { public abstract boolean add(E item); //添加元素 public abstract boolean add(int i,E item); //插入元素 public abstract E remove(int i); //删除元素 public abstract int indexOf(E item); //定位元素 public abstract E get(int i); //取表元素 public abstract int size(); //求线性表长度 public abstract void clear(); //清空线性表 public abstract boolean isEmpty(); //判断线性表是否为空 public abstract boolean isFull(); //判断线性表是否满}
实现顺序表的接口
import java.lang.reflect.Array;public class SeqList<E> implements ILinarList<E> { private int maxsize; //顺序表的最大容量 private E[] data; //储存顺序表中数据元素的数组 private int size; //实际长度 public SeqList(Class<E> type,int maxsize){ this.maxsize=maxsize; data=(E[])Array.newInstance(type, maxsize);//不懂存疑 size=0; } //添加功能 public boolean add(E item) { if(!isFull()){//检查是否满了 data[size++]=item; return true; } else return false; } public boolean add(int i, E item) { if(i<0||i>size){//检查是否在范围内,但是不能等于size,如果等于size也可以 throw new IndexOutOfBoundsException("Index:"+i+",size:"+size);//跑出越界异常 } if(!isFull()){ for(int j=size;j>i;j--){//要从尾到头 data[j]=data[j-1]; } data[i]=item; size++;//每次改变长度size一定要操作 return true; } else return false; } public E remove(int i) { rangeCheck(i);//与上面的检查不一样,这次可以等于size if(!isEmpty()){ E item=data[i];//记录需要删除的元素 for(int j=i;j<size-1;j++){//从头到尾,注意是size-1,如果仅仅小于size的话,当进行到size-1的时候,没有size的元素 data[j]=data[j+1]; } data[--size]=null;//要进行清除最后一个元素的操作 return item;//删除成功返回被删除的元素,虽然不知到为什么要这样做 } else return null; } public int indexOf(E item) {//需要测试item=null是会有什么结果 if(!isEmpty()){ for(int j=0;j<size;j++){ if(item==data[j]) return j; } } return -1;//此处不可以加else,上面两个if可能会导致没有出口 } public E get(int i) { rangeCheck(i); if(!isEmpty()){ return data[i]; } else return null; } public int size() { return size; } public void clear() { for(int j=0;j<size;j++) data[j]=null; size=0; } public boolean isEmpty() { return size==0;//返回一个Boolean } public boolean isFull() { return size==maxsize; } private void rangeCheck(int i) { if(i<0||i>=size){ throw new IndexOutOfBoundsException("Index:"+i+",size:"+size); } }}
阅读全文
0 0
- 数据结构顺序表的定义(Java)
- java数据结构(顺序表)
- c++ 数据结构 顺序栈的类定义
- JAVA数据结构---顺序表
- java 数据结构--顺序表
- 数据结构—顺序表(自己实现Java的ArrayList)
- 数据结构(一)---顺序表的实现---java版
- 1-java数据结构顺序表的实现
- 数据结构顺序表定义和实现
- 数据结构--顺序表定义及python实现
- 数据结构栈的定义(java)
- 数据结构单链表的定义(Java)
- 数据结构之顺序表(java版)
- 线性表-顺序存储(Java数据结构)
- Java与数据结构(一) 顺序表
- java 数据结构之顺序表
- JAVA数据结构之顺序表
- java数据结构之顺序表
- 中国计算机学会秘书长杜子德:这么多年,自然语言处理还没“过关”
- 谷歌Chrome居首,微软Edge增长缓慢:最新浏览器市场份额排名出炉
- 安卓使用Termux做渗透测试(演示sqlmap安装,并附上一个神器)
- ADT
- form表单 重置按钮
- 数据结构顺序表的定义(Java)
- Cglib动态代理
- 算法导论读后感-之堆,堆排序,堆排序的应用
- 路透:百度扎根硅谷 引领自动驾驶汽车研发
- 合唱团问题-懵逼-强行做-错-更懵逼-继续做-完成
- POJ
- Python selenium的js扩展实现
- 剑指offer——面试题7:用两个栈实现队列
- 计蒜客————Anniversary Cake