数据结构——线性表之顺序存储结构

Posted wgblog-code

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构——线性表之顺序存储结构相关的知识,希望对你有一定的参考价值。

概念:

  • 线性表顺序存储结构中的元素拥有一个直接前驱元素,和一个直接后继元素;线性表的第一个元素只有直接后继元素,最后一个元素只有直接前驱元素
  • 线性表一旦创建,长度一般都是固定的,这是它的最大容量
  • 线性表中元素个数只能小于等于线性表长度

 

线性表的基本操作:

  1 public class SeqList 
  2     
  3     final int defaultSize=10;
  4     int maxSize;// 顺序表的最大长度
  5     int size;// 线性表的当前长度
  6     static Object[] listArray;//存储线性表的数组
  7     
  8     
  9     public SeqList(int size) 
 10         initiate(size);
 11     
 12     
 13     public SeqList() 
 14         initiate(defaultSize);
 15     
 16     
 17     //初始化线性表
 18     public void initiate(int sz) 
 19         maxSize=sz;
 20         size=0;
 21         listArray=new Object[sz];
 22     
 23     
 24     //线性表的插入
 25     public void insert(int i,Object obj) throws Exception
 26         //线性表已经满了
 27         if(size==maxSize) 
 28             throw new Exception("线性表已经满了");
 29         
 30         if(i==0) 
 31             listArray[i]=obj;
 32         else 
 33             //插入位置越界
 34             if(i<0||i>maxSize) 
 35                 throw new Exception("参数有误");
 36             else 
 37                 for(int j=size;j>=i;j--) 
 38                     listArray[j]=listArray[j-1];
 39                 
 40                 listArray[i]=obj;
 41                 size++;
 42             
 43         
 44         
 45     
 46     
 47     //线性表的删除
 48     public void delete(int i) throws Exception
 49         if(size==0) 
 50             throw new Exception();
 51         
 52         if(i<0||i>maxSize) 
 53             throw new Exception("参数有误");
 54         else 
 55             for(int j=i;j<=size;j++) 
 56                 listArray[j-1]=listArray[j];
 57             
 58             listArray[size]=null;
 59             size--;
 60         
 61         
 62     
 63     
 64     
 65     //获取线性表中的元素
 66     public Object getData(int i)throws Exception
 67         if(size==0) 
 68             throw new Exception("顺序表为空,无法返回元素");
 69         
 70         if(i<0||i>maxSize) 
 71             throw new Exception("参数错误");
 72         
 73         return listArray[i];
 74     
 75     
 76     //获取线性表的长度
 77     public int getSize() 
 78         return listArray.length;
 79     
 80     
 81     //判断线性表是否为空
 82     public boolean isNull() 
 83         if(listArray.length==0) 
 84             return true;
 85         
 86         return false;
 87     
 88     
 89     public static void main(String[] args) throws Exception 
 90         SeqList list=new SeqList(10);
 91         list.insert(0,0);
 92         list.insert(1,1);
 93         list.insert(2,2);
 94         list.insert(3,3);    
 95         list.insert(4,4);
 96         printArr(listArray);
 97         list.delete(3);
 98         System.out.println();
 99         printArr(listArray);
100     
101     
102     
103     public static void printArr(Object[] obj) 
104         for (Object object : obj) 
105             System.out.print(object+"-");
106         
107     
108     
109 

 

 

以上是关于数据结构——线性表之顺序存储结构的主要内容,如果未能解决你的问题,请参考以下文章

线性表之顺序存储结构(顺序表)

数据结构学习总结线性表之顺序表

线性链表之顺序表

数据结构线性表之顺序表ArrayList

线性表之顺序存储结构实现(上)

数据结构之线性表之顺序存储Java实现