当前位置: 首页 > news >正文

数据结构(一)——线性表的顺序表示和实现

一、线性表的定义

由n(n>=0)个数据特性相同的元素构成的有限序列称为线性表,(n=0)的时候被称为空表。

一个数据元素可以是简单的一个数据,一个符号,也可以是复杂的若干个数据项的组合。

二、线性表的类型定义

s线性表是由n(n≥0)个相同类型的数据元素组成的有限序列,它是最基本最常用的一种线性结构。顾名思义,线性表就像是一条线,不会分叉。线性表有唯一的开始和结束,除了第一个元素外,每个元素都有唯一的直接前驱:除了最后一个元素外,每个元素都有唯一的直接后继,如图所示。

eg1: 线性表的两种存储结构为 链表 和 顺序表

eg2: 线性表是具有n个(数据元素)的有限序列(n>0)

三、顺序表定义

顺序表采用顺序存储方式,即逻辑上相邻的数据在计算机内的存储位置也是相邻的。顺序存储方式,元素存储是连续的,中间不允许有空,可以快速定位第几个元素,但是插入和删除时需要移动大量元素

eg1: 如果一个顺序表中第一个元素的存储地址是1000,每个元素占4个地址单元,那么第6个元素的存储地址是(1020)

eg2: 当需要随机查找线性表的元素时,宜采用(顺序表)作为存储结构

四、线性表的操作

1.初始化

初始化是指为顺序表分配一段预定义大小的连续空间,用elem记录这段间的基地址,当前空间内没有任何数据元素,因此元素的实际个数为0。假设我们已经预定义了一个最大空问数Maxsize,那么就用new分配大小为Maxsiz的空间,分配成功会返回空间的首地址,分配失败会返回空指针

2.创建

3.取值

顺序表中的任何一个元素都可以立即找到,称为随机存取方式。例如,要取第i个元素,只要i值是合法的(1≤i≤L.length),那么立即就可以找到该元素。由于下标是从0开始的,因此第i个元素,其下标为i-1,即对应元素为L.elem[i-1]

注意:位序是指第几个元素,位序和下标差1。

4.插入

在顺序表中第i个位置之前插入一个元素e,需要从最后一个元素开始,后移一位,直到把第i个元素也后移一位,然后把e放入第i个位置

eg1: 在一个长度为n的顺序表中,在第i个元素(1<=i<=n+1)之前插入一个新元素时须向后移动(n-i+1)个元素

5.删除

在顺序表中删除第i个元素,需要把该元素暂存到变量e中,然后从i+1个元素开始前移,直到把第几个元素也前移一位,即可完成删除操作。

相关文章:

  • Xcode16提交App Store审核时提示bitcode报错
  • 【coze】工作流(B站视频总结改写)
  • 什么是原子变量
  • 今日行情明日机会——20250506
  • The 2023 ICPC Asia Taoyuan Regional Programming Contest
  • C++自动重连机制设计与实现指南
  • 2025ACTF Web部分题解
  • Linux/AndroidOS中进程间的通信线程间的同步 - POSIX IPC
  • 【MongoDB篇】MongoDB的事务操作!
  • LeetCode 1128. 等价多米诺骨牌对的数量 题解
  • C++ STL 基础与多线程安全性说明文档
  • Visual Studio 快捷键更改和设置
  • 使用ip池后,爬虫还被封,是什么原因呢?
  • Zoho在2025:三个支点和一个新故事
  • 数据管理平台是什么?企业应如何做好数据化管理?
  • MySQL数据库中篇
  • 【STM32项目实战】一文了解单片机的SPI驱动外设功能
  • Vue3 中用 canvas 封装抽奖转盘组件:设定中奖概率及奖项图标和名称
  • LeetCode:二叉树的中序遍历
  • 【SpringBoot】SpringBoot中使用AOP实现日志记录功能
  • 媒体起底“速成洋文凭”灰产链,专家:我们要给学历“祛魅”
  • 魔都眼|上海多家商场打开绿色通道,助力外贸出口商品转内销
  • A股三大股指集体高开大涨超1%,券商、房地产涨幅居前
  • 潘功胜:将下调个人住房公积金贷款利率0.25个百分点
  • 胡祥|人工智能时代:文艺评论何为?
  • 许昌市场监管部门对胖东来玉石开展日常检查:平均毛利率不超20%