【408计算机考研】数据结构——第二章 线性表

第二章 线性表

2.1 线性表的定义和基本操作

2.1.1 线性表的定义

线性表具有相同数据类型的n(n>=0) 个数据元素的有限序列,其中n为表长,当 n= 0 时线性表是一个空表。若用L命名线性表,则其一般表示为L = (a1, a2, … , ai, ai+1,…. , an,)

...
...
a1
a2
ai
ai+1
an

表头元素:“第一个”数据元素
表尾元素:“最后一个”数据元素
每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后继

2.1.2 线性表的基本操作

  • InitList(&L):初始化表。构造一个空的线性表。
  • Length(L):求表长。返回线性表L的长度,即L中数据元素的个数。
  • LocateElem(L,e): 按值查找操作。在表L中查找具有给定关键字值的元素。
  • GetElem(L ,i):按位查找操作。获取表L中第i个位置的元素的值。
  • Listinsert(&L,i,e):插入操作。在表L中的第i个位置上插入指定元素。
  • ListDelete(&L,i,e):删除橾作。删除表L中第i个位置的元素,并用e返回删除元素的值。
  • PrintList (L):输出操作。按前后顺序输出线性表L的所有元素值。
  • Empty(L):判空操作。若L为空表,则返回 true, 否则返回 false。
  • DestroyList (&L): 销毁操作。销毁线性表,并释放线性表L所占用的内存空间。

注意: 基本操作的实现取决于采用哪种存储结构,存储结构不同,算法的实现也不同。

2.2 线性表的顺序表示

2.2.1 顺序表的定义

线性表的顺序存储又称顺序表。它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻顺序表的特点是表中元素的逻辑顺序与其物理顺序相同

2.2.2 顺序表上基本操作的实现

顺序表的静态分配

给各个数据元素分配连续的存储空间,大小为MaxSize*sizeof(ElemType)
Sq: sequence—顺序,序列

#include <iostream>
using namespace std;

#define MaxSize 10      //定义最大长度
typedef int ElemType;
typedef struct{
   
    ElemType data[MaxSize];     //用静态的“数组”存放数据元素
    int length;                 //顺序表的当前长度
}SqList;                        //顺序表的类型定义(静态分配方式)

// 基本操作一:初始化一个顺序表
void InitList
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜子爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值