博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于数组实现线性表
阅读量:5345 次
发布时间:2019-06-15

本文共 1874 字,大约阅读时间需要 6 分钟。

  数组是一组内存地址连续的存储单元,所以用数组实现的线性表是顺序存储的。可以通过数组下标轻易的访问不同位置的数据,但要注意下标越界的异常(ArrayIndexOutOfBoundsException)

  用数组实现的线性表,查询与更改方法有着优势。(因为有下标)

  1.MyList接口定义功能

public interface MyList {    //新增一个元素    void add(Object element);    //删除与输入元素相同的元素    void delete(Object element);    //根据索引删除元素    void delete(int index);    //更新元素    void update(int index,Object newelement);    //三种查询形式    boolean contains(Object element);        Object at(int index);        int indexOf(Object element);}

   2.MyArrayList类实现接口功能

1 public class MyArrayList implements MyList{  2     private Object elements[];//真正存储元素的底层结构  3     private int size;//当前的存储个数  4     private int capcity;//总容量  5       6     public MyArrayList(int capcity)  7     {  8         this.size=0;  9         this.capcity=capcity; 10         elements=new Object[capcity]; 11     } 12     public MyArrayList() 13     { 14         this(10); 15     } 16     @Override 17     public void add(Object element) { 18         if(size==capcity)//因为数组是不可变长的,所以需要进行特殊扩容 19         { 20             capcity=capcity*2; 21             Object newElements[]=new Object[capcity]; 22             for(int i=0;i
=0) 36 delete(index); 37 38 39 } 40 41 @Override 42 public void delete(int index) { 43 //防复杂度的震荡 44 if(size<=capcity/4&&!(capcity/4==0)) 45 { 46 capcity=capcity/2; 47 Object newElements[]=new Object[capcity]; 48 for(int i=0;i
0)//防止下标溢出 55 { 56 for(int i=index;i
=0; 74 75 76 } 77 78 @Override 79 public Object at(int index) { 80 return elements[index]; 81 } 82 83 84 @Override 85 public int indexOf(Object element) { 86 for(int i=0;i

 

转载于:https://www.cnblogs.com/LgxBoKeYuan/p/10175205.html

你可能感兴趣的文章
Uber回馈开源的一些软件
查看>>
day 3 修改haproxy.cfg 作业
查看>>
UIScrollView —— 缩放实现案例(二)
查看>>
【Qt】Qt Linguist介绍【转】
查看>>
sim usim Uim 区别
查看>>
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>
视觉设计师的进化
查看>>
Python/jquery
查看>>
WPF之Binding
查看>>
【BZOJ】【2132】圈地计划
查看>>
四则运算
查看>>
一天一道算法题---6.20--数学题
查看>>
二进制文件
查看>>
单点登录
查看>>
ASP.NET MVC3 常用小积累
查看>>
RxJava2 源码分析
查看>>
JSON的key值为数字时如何使用
查看>>
数据库备份恢复--备份数据库
查看>>