线性表的顺序存储
来源:互联网 发布:中国工业发展现状 知乎 编辑:程序博客网 时间:2024/06/06 03:21
线性表基本特征:
唯一的第一个元素;
唯一的最后一个元素;
除第一个元素外都只有一个前驱元素;
除最后一个元素外都只有一个后继元素。
package 线性表;import java.util.Arrays;public class SequenceList<T> {private int DEFAULT_SIZE=16;private int capacity;private Object[]elementData;private int size=0;public SequenceList(){capacity=DEFAULT_SIZE;elementData=new Object[capacity];}public SequenceList(T element){this();elementData[0]=element;size++;}public SequenceList(T element,int initSize){capacity=1;while(capacity<initSize){capacity<<=1;}elementData=new Object[capacity];elementData[0]=element;size++;}public int length(){return size;}public T get(int i){if(i<0||i>size-1){throw new IndexOutOfBoundsException("线性表索引越界");}return (T)elementData[i];}public int locate(T element){for(int i=0;i<size;i++){if(elementData[i].equals(element)){return i;}}return -1;}public void insert(T element,int index){if(index<0||index>size){throw new IndexOutOfBoundsException("线性表索引越界");}ensureCapacity(size+1);System.arraycopy(elementData, index, element, index+1, size-index);elementData[index]=element;size++;}public void add(T element){insert(element,size);}public void ensureCapacity(int minCapacity){if(minCapacity>capacity){while(capacity<minCapacity){capacity<<=1;}elementData=Arrays.copyOf(elementData, capacity);}}public T delete(int index){if(index<0||index>size-1){throw new IndexOutOfBoundsException("线性表索引越界");}T oldValue=(T)elementData[index];int numMoved=size-index-1;if(numMoved>0){System.arraycopy(elementData, index+1, elementData, index, numMoved);}elementData[--size]=null;return oldValue;}public T remove(){return delete(size-1);}public boolean empty(){return size==0;}public void clear(){Arrays.fill(elementData, null);size=0;}public String toString(){if(size==0){return "[]";}else{StringBuilder sb=new StringBuilder("[");for(int i=0;i<size;i++){sb.append(elementData[i].toString()+",");}int len=sb.length();return sb.delete(len-2, len).append("]").toString();}}}
0 0
- 线性表的顺序存储
- 顺序存储的线性表
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- 线性表的顺序存储
- Android-多列表的项目(Rxjava+Rtrofit+Recyclerview+Glide+Adapter封装)之(二)网络层的封装
- mysql死锁-查询锁表进程-分析锁表原因
- 天线的基本参数介绍
- AS2.2.3新建工程出现的问题(直接贴了代码,耐心比对不同之处)
- 交换机开发(一)—— 交换机的工作原理
- 线性表的顺序存储
- 455. Assign Cookies
- POJ 2411 Mondriaan's Dream [状压DP做法]
- HDOJ 1005 Java 答案
- 深度学习caffe实战(一)验证码识别
- python解析基于xml格式的日志文件
- codeforces 399 E. Game of Stones 博弈 思维题
- javascript Object.is 与 === 的区别
- 昇润科技将在三月底推出CC2640R2 SDK开发平台