专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

算法——线性表之顺序存储结构

概念:

  • 线性表顺序存储结构中的元素拥有一个直接前驱元素,和一个直接后继元素;线性表的第一个元素只有直接后继元素,最后一个元素只有直接前驱元素

  • 线性表一旦创建,长度一般都是固定的,这是它的最大容量

  • 线性表中元素个数只能小于等于线性表长度

线性表的基本操作:

 public class SeqList {

     final int defaultSize=10;
     int maxSize;// 顺序表的最大长度
     int size;// 线性表的当前长度
     static 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) {
             listArray[i]=obj;
         }else {
             //插入位置越界
             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>maxSize) {
             throw new Exception("参数有误");
         }else {
             for(int j=i;j<=size;j++) {
                 listArray[j-1]=listArray[j];
             }
             listArray[size]=null;
             size--;
         }

     }

     //获取线性表中的元素
     public Object getData(int i)throws Exception{
         if(size==0) {
             throw new Exception("顺序表为空,无法返回元素");
         }
         if(i<0||i>maxSize) {
             throw new Exception("参数错误");
         }
         return listArray[i];
     }

     //获取线性表的长度
     public int getSize() {
         return listArray.length;
     }

     //判断线性表是否为空
     public boolean isNull() {
         if(listArray.length==0) {
             return true;
         }
         return false;
     }

     public static void main(String[] args) throws Exception {
         SeqList list=new SeqList(10);
         list.insert(0,0);
         list.insert(1,1);
         list.insert(2,2);
         list.insert(3,3);    
         list.insert(4,4);
         printArr(listArray);
         list.delete(3);
         System.out.println();
         printArr(listArray);
     }

     public static void printArr(Object[] obj) {
         for (Object object : obj) {
             System.out.print(object+"-");
         }
     }

 }

#

文章永久链接:https://tech.souyunku.com/36308

未经允许不得转载:搜云库技术团队 » 算法——线性表之顺序存储结构

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们