数据结构代码--线性表的顺序存储结构
/*** 线性表的顺序存储结构*/
public class SqList {int[] data;int length;public SqList(int leng, int length) {this.data = new int[leng];this.length = length;}public int[] getData() {return data;}public void setData(int[] data) {this.data = data;}public int getLength() {return length;}public void setLength(int length) {this.length = length;}@Overridepublic String toString() {return "SqList{" +"data=" + Arrays.toString(data) +", length=" + length +'}';}//初始化顺序表public void initList() {for (int i = 0; i < this.length; i++) {this.data[i] = 99;}}//根据给出的位序获取数据元素public int getElem(int offset) {//如果给出的位序小于1或者大于当前表长度 报错if (offset < 1 || offset > this.length) {return 0;}int elem = this.data[offset];return elem;}//根据给出的位序和指定的元素插入元素public int insertElem(int offset, int value) {//如果给出的位序小于1或者大于当前表长度 报错if (offset < 1 || offset > this.length) {return 1;}if (offset <= this.length) {for (int k = this.length - 1; k >= offset - 1; k--) {this.data[k + 1] = this.data[k];}}this.data[offset - 1] = value;this.length++;return 0;}//根据给出的位序删除元素public int deleteElem(int offset) {if (offset < 1 || offset > this.length) {return 1;}if (offset < this.length) {for (int k = offset - 1; k < this.length; k++) {this.data[k] = this.data[k + 1];}}this.length--;return 0;}}
/*** 有关顺序存储线性表的操作* 初始化* 取元素* 插入元素* 删除元素*/
public class SqListOper {public static void main(String[] args) {//定义一个顺序表SqList sqList = new SqList(10, 5);//顺序表的初始化sqList.initList();//根据位序取数据int elem = sqList.getElem(4);System.out.println(elem);System.out.println(sqList);//根据位序和指定元素插入数据int i = sqList.insertElem(3, 11);System.out.println(i);System.out.println(sqList);//根据位序删除元素int i1 = sqList.deleteElem(2);System.out.println(i1);System.out.println(sqList);}
}
线性表顺序存储的初始化/取指定元素/指定位序插入指定元素/指定位序删除元素代码。
因为顺序存储的内存地址是连续的,所以查找元素的时间复杂度为O(1),这种结构称之为随机存取结构。
在元素的插入和删除操作中,平均时间复杂度都是O(n),所以顺序存储的线性表不适合数据变动较多的场景,适合一次写入多次查找。
暂时记录到这里--------------------------------------------------------------------------------------------------
数据结构代码--线性表的顺序存储结构相关推荐
- 数据结构之线性表之顺序存储结构(3)
1 前言 经过前两张的理论基础,我相信大家都能简单的明白了数据结构和算法一些常用的概念了,从今天开始我们开始学习数据结构中线性表,一起叩响数据结构的大门. 2 详述 线性表(List):零个或者多个数 ...
- 【数据结构】线性表的顺序存储结构及实现——C语言版
文章目录 顺序表 1. 顺序表的存储结构定义 2. 顺序表的实现 2.1 初始化顺序表 2.2 建立顺序表 2.3 销毁顺序表 2.4 判空操作 2.5 求顺序表的长度 2.6 遍历操作 2.7 按值 ...
- 【Java】 大话数据结构(1) 线性表之顺序存储结构
本文根据<大话数据结构>一书,实现了Java版的顺序存储结构. 顺序存储结构指的是用一段地址连续的存储单元一次存储线性表的数据元素,一般用一维数组来实现. 书中的线性表抽象数据类型定义如 ...
- 【数据结构】线性表的顺序存储结构(c语言实现)
最近在复习数据结构,参考资料为王道数据结构 /*********************************************************//*Project: sequence ...
- 线性表之顺序存储结构相关算法学习
作为一名准备干一辈子的程序员,学习算法还是很有必要的.所以从基础开始了.学习教材 是大话数据结构. 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素.代码 参照教材 采用c ...
- 线性表之顺序存储结构
第三章 线性表:零个或多个数据元素的有限序列. 若将线性表标记为(a1,a2,...ai-1,ai,ai+1,...,an), 当i=1,2,...n-1时,ai有且仅有一个直接后继, 当i=2,3, ...
- 数据结构和算法:(3)3.1线性表的顺序存储结构
-----------------------1.线性表基础操作------------------------ 线性表:(List)由零个或多个数据元素组成的有限序列. 首先他是一个序列,元素之间是 ...
- 《数据结构》c语言版学习笔记——线性表的顺序存储结构
线性表的顺序存储结构 第一章 线性表的顺序存储结构 文章目录 线性表的顺序存储结构 前言 一.顺序存储结构的建立 1.条件 2.代码 二.顺序存储结构的获得元素 1.条件 2.代码 三.顺序存储结构的 ...
- 【数据结构】之线性表(顺序存储结构)
博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此 博主:威威喵 | 博客主页:https://blog.csdn.net/ ...
最新文章
- css菜单缓慢滑动_如何使用HTML,CSS和JavaScript构建滑动菜单栏
- Windows XP中安装虚拟网卡microsoft loopback adapter
- 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )
- 【带你入门】java网络编程
- 解题报告——Python编程:从入门到实践_动手试一试_参考答案(第四章)
- Facebook推出人脸识别新功能,防止用户肖像遭滥用
- sm750显卡驱动linux版,M.2接口也能做显卡,慧荣科技提供图形显示芯片支持
- php读取文件部分内容,PHP 提高篇
- ACM-ICPC竞赛算法类型
- 【强烈推荐】蒋勋细说《红楼梦》
- 牛客多校第五场B generator1(十进制矩阵快速幂)题解
- 怎么把文本文档txt改成html,如何将Word文档转换成txt格式文本
- 解决计算机主机与打印机共享打印机,主机上的打印机已经设置了共享可是另外的电脑却不能用也搜索不到共享打印机...
- 三极管构成的流水灯电路分析
- WCDMA物理层--信道整体结构流程
- 威沙特分布和逆威沙特分布(Wishart 分布及逆 Wishart 分布)
- 计算机外文文献ssh,计算机外文文献及翻译(SSH).doc
- IP地址和交换机原理
- Vue中router-link路由跳转以及传参方式
- Fallout 4 辐射4 技巧统计