数据结构之线性表(一)(复习)

本文主要复习数据结构中的线性表,包括逻辑结构和顺序存储结构。线性表是一个有限序列,由n(≥0)个数据元素组成。介绍了线性表的9个基本运算,如初始化、销毁、查找、插入和删除等。此外,文章还讨论了线性表在存储结构上的实现,特别是使用C语言实现顺序存储结构的基本操作。
摘要由CSDN通过智能技术生成

线性表

引言

继续复习数据结构,今天复习最为基础的线性表部分。

正文

  • 线性表及其逻辑结构
  • 线性表的顺序存储结构
  • 线性表的逻辑存储结构
  • 线性表的应用

2.1 线性表及其逻辑结构

首先来介绍什么是线性表

线性表是 n (≥0) 个数据元素的有限序列,记作
(a1, a2, …, an)
ai 是表中数据元素,n 是表长度。

线性表的特点
在这里插入图片描述
线性表是客观事物的抽象
是我们对现实事物的抽象表达
Eg:
在这里插入图片描述
接下来介绍其抽象数据类型
在这里插入图片描述
基于其抽象数据类型的基本运算

  • 初始化线性表InitList(&L):构造一个空的线性表L。

  • 销毁线性表DestroyList(&L):释放线性表L占用的内存空间。

  • 判线性表是否为空表ListEmpty(L):若L为空表,则返回真, 否则返回假。

  • 求线性表的长度ListLength(L):返回L中元素个数n。

  • 输出线性表DispList(L):线性表L不为空时,顺序显示L中各结点的值域。

  • 求线性表L中指定位置的某个数据元素GetElem(L,i,&e):用e返回L中第 i(1≤i≤n)个元素的值。

  • 定位查找LocateElem(L,e):返回L中第一个值域与e相等的逻辑位序。若这样的元素不存在,则返回值为0。

  • 插入一个数据元素ListInsert(&L,i,e):在L的第i(1≤i≤n)个元素之前插入新的元素e,L的长度增1。

  • 删除数据元素ListDelete(&L,i,&e):删除L的第i(1≤i≤n)个元素,并用e返回其值,L的长度减1。

    这9个基本运算,对于使用不同存储结构的线性表其过程不同,在后面会一一介绍

或许你会好奇这线性表有什么用
在这里 我要先说 线性表十分重要

  • 程序员可以直接使用它来存放数据——作为存放数据的容器。
  • 程序员可以直接使用它的基本运算——完成更复杂的功能

在这里插入图片描述
随着学习越来越深入,你一定会觉得线性表是十分重要的

最后介绍一下线性表的知识结构
在这里插入图片描述

2.2 线性表的顺序存储结构

从现在开始,就要了解真正的数据结构了
先是比较简单线性表的顺序存储结构——线性表

  • 线性表是按逻辑顺序依次存储到存储器中一片连续的存储空间中的数据结构

在这里插入图片描述
用计算机C语言表示就是数组
只是这个数组有些不一样
它是这样定义的

typedef struct 
{
   
	char data[MaxSize];
	int length;
}SqList;

其中data成员存放元素
length成员存放线性表的实际长度。
要注意:其逻辑位序与物理位序差1
这个是数组的基本知识了 但还是要提醒一下

**接下来就是重点了
用C语言实现上面提到的基本运算

1、建立顺序表

void CreateList(SqList *&L, char a[], int n)
//顺序建立顺序表</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值