public interface List {
   public void insert(int i,Object obj)throws Exception;
   public void delete(int i)throws Exception;
   public Object getData(int i)throws Exception;
   public int size();
   public boolean isEmpty();
  }
  顺序表:
  顺序表插入一个元素需要移动元素的平均次数为n/2次,删除一个元素需要移动元素次数为(n-1)/2,所以顺序表的时间复杂度为O(n)。
  顺序表的实现如下
  package com.nishizhen.list;   public class SeqList implements List{
final int defaultSize = 10;
int maxSize;//顺序表的最大长度
int size;//线性表当前长度
Object[] listArray;//存储线性表元素的数组   public SeqList(int size){
initiate(size);
} public SeqList(){
initiate(defaultSize);
} public void initiate(int sz){
maxSize = sz;
size = 0;
listArray = new Object[sz];
}   public void insert(int i,Object obj)throws Exception{
if(size == maxSize){
throw new Exception("顺序表已满,不能再插入元素。");
}
if(i<0 || i>maxSize){
throw new Exception("参数有误。");
}
else{
for(int j=size;j>=i;j--){
listArray[j] = listArray[j-1];
} listArray[i] = obj;
size++;
}
}   public void delete(int i)throws Exception{
if(size == 0){
throw new Exception("顺序表为空,无法进行删除元素操作。");
} if(i<0 || i>=size){
throw new Exception("参数出错。");//数组下标不能小于0或者大于size,因为size及其以后的元素为空。
}
else{
for(int j=size-1;j>=i;j--){
listArray[j-1] = listArray[j];
}
listArray[listArray.length-1] = "";
size--;
}
}   public Object getData(int i)throws Exception{
if(size == 0){
throw new Exception("顺序表为空,无法返回元素。");
} if(1<0 || i>=size){
throw new Exception("参数出错。");//数组下标不能小于0或者大于size,因为size及其以后的元素为空。
}
else{
return listArray[i];
}
}   public int size(){
return listArray.length;
}   public boolean isEmpty(){
boolean flag = false;
if(listArray.length==0){
flag = true;
}
return flag;
}
}

最新文章

  1. ecshop二次开发 给商品添加自定义字段【包含我自己进一步的开发实例详解】
  2. 扩展AuthorizeAttribute
  3. Java程序员的日常 —— 多进程开发IO阻塞问题
  4. hdu-5497 Inversion(滑动窗口+树状数组)
  5. SQL——存储过程实例 循环
  6. 【Same Tree】cpp
  7. Android源代码之DeskClock (一)
  8. cookie丢失、登陆自动退出问题解决
  9. hdu 5605 geometry(几何,数学)
  10. excel unixtime与北京时间互转
  11. ubuntu下的词典的安装
  12. csv格式的数据存储到mysql
  13. 加了synchronized后还是不安全的问题
  14. POJ 3414 pots (未解决)
  15. 将struct转为map
  16. Django笔记(2)Json字段处理
  17. IOS修改Navigation Bar上的返回按钮文本颜色,箭头颜色以及导航栏按钮的颜色
  18. Oracle 高级查询
  19. 华为18.9.5校招笔试题AK
  20. netty/example/src/main/java/io/netty/example/http/snoop/

热门文章

  1. Singelton单例模式
  2. WebSphere MQ 入门指南
  3. 即时定位与地图构建SLAM(Simultaneous Localization and Mapping)
  4. poj3384Feng Shui(半平面交)
  5. js图片跑马灯效果
  6. jQuery的选择器小总结
  7. 5.2 i++
  8. 如何让Service自动重启而不被kill掉
  9. junit4 javaee 5.0 jpa SSH 单元测试问题集锦
  10. ajax 跨域解决 网上资料