概念:
- 线性表顺序存储结构中的元素拥有一个直接前驱元素,和一个直接后继元素;线性表的第一个元素只有直接后继元素,最后一个元素只有直接前驱元素
- 线性表一旦创建,长度一般都是固定的,这是它的最大容量
- 线性表中元素个数只能小于等于线性表长度
线性表的基本操作:
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 }
原文地址:https://www.cnblogs.com/wgblog-code/p/11172107.html
时间: 2024-11-12 09:49:36