前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构——线性表之顺序存储结构

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

作者头像
说故事的五公子
发布2019-09-11 17:22:16
4750
发布2019-09-11 17:22:16
举报

概念:

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

线性表的基本操作:

代码语言:javascript
复制
  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 }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概念:
  • 线性表的基本操作:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档