线性表之顺序储存结构

顺序储存结构

1,什么是顺序储存?

线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素。

2,怎样实现顺序存储?

使用一维数组来实现存储顺序表中的数据

顺序储存示意图如下:
在这里插入图片描述

一, 插入数据操作

插入数据实现过程如图;
在这里插入图片描述
插入算法思路:

  • 如果插入的位置不合理,抛出异常;
  • 如果顺序表的长度大于数组长度,就抛出异常或动态增加容量;
  • 从最后一个元素开始向 i 的位置遍历,分别将它们后移一个位置;
  • 在 i 的位置插入元素;
  • 表长加一。

代码实现如下:

//在线性表第i个元素前加入一个值为x的元素
public void insert (int i, Object x) throws Exception  {
	if(len == listElem.length){
		throw new Exception("顺序表已满");
		}
	if(i < 0 || i > len){
		throw new Exception("插入位置不合法");
		}
	for(int j = len; j > i; j--){
		listElem[j] = listElem[j - 1];
		}
	listElem[i] = x;
	len++;
}

二,删除操作

删除操作过程如图
在这里插入图片描述
删除算法思路:

  • 如果删除位置不合理,就抛异常;
  • 取出删除元素;
  • 从删除元素遍历到最后一个元素,分别将它们往后移一个位置;
  • 表长减一。
    代码实现如下:
//删除指定位置上的元素
public void remove(int i) throws Exception {
	if(i < 0 || i > len - 1)
		throw new Exception("删除位置不合法");
	for(int j = i; j < len - 1; j++)
		listElem[j] = listElem[j + 1];
	len--;
}

三, 顺序储存的优缺点

在这里插入图片描述

©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页