【数据结构和算法】3.线性表和顺序表的初步介绍

您所在的位置:网站首页 线性表的特点是每个元素都有一个前驱和一个后镜 【数据结构和算法】3.线性表和顺序表的初步介绍

【数据结构和算法】3.线性表和顺序表的初步介绍

2024-01-13 00:51| 来源: 网络整理| 查看: 265

欢迎来sobercq的博客喔,本期系列为【数据结构和算法】第三篇线性表和顺序表

我将从线性结构,线性表的定义等角度出发带大家理解线性结构,以及第四篇会图文讲解顺序表,最后还会有源码分享,感谢观看,支持的可以给个赞哇。

一、线性结构和线性表

 线性结构就是一个有序数据元素的集合,结构中的数据元素之间存在一个对一个的关系

线性结构的特点是:在数据元素的非空有限集中,

(1)存在唯一的一个被称做“第一个”的数据元素;

(2)存在唯一的一个被称做“最后一个”的数据元素;

(3)除第一个之外,集合中的每个数据元素均只有一个前驱;

(4)除最后一个之外,集合中的每个数据元素均只有一个后继;

“前驱”指的是前一个元素,“后继”是后一个元素

其实如果看图就比较好理解 

介绍完线性结构,接下来就讲线性表了,线性表是最常用且最简单的一种数据结构,线性表(linear list)是n个具有相同特性的数据元素的有限序列。数据元素呢在不同的情况下各不相同,它可以是一个数,一个符号也可以是一页书,或者各种字母什么的。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...

线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。

线性表中元素的个数n定为线性表的长度,当n等于0的时候称为空表。线性表是一个相当灵活的数据结构,它的长度可以根据需要增长或者缩短,即对线性表的数据元素不仅可以进行访问,还可进行插入和删除等等。

二、顺序表的定义,种类,代码要实现的功能

(1)顺序表的定义

顺序表是线性表的一种,顺序表如下图所示,

根据图示可以看到当前的数据元素被一段物理地址连续的空间存储,有点类似数组。因为每一个数据元素的存储位置都和线性表的起始位置相差一个和数据元素在线性表中的位序成正比的常数(也就是图示中相差的一)因此线性表中的起始位置确定了,任一一个的数据元素都可以随机存取,所以顺序表是一种随机存取的存储结构,但它只能从头连续存储,此外又因为在C语言中数组也有类似特性,所以通常都用数组来描述顺序表。

以下是定义:

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。

 (2)顺序表的种类

顺序表一般可以分为:

1. 静态顺序表:使用定长数组存储元素。

2.动态顺序表:使用动态开辟的数组存储。

静态顺序表的弊端也明显点,当我们空间开大了就存在浪费现象,开小了又不够用,而动态顺序表就解决这个问题但动态顺序表仍然存在一定的弊端。

(3)顺序表代码实现的功能

1.我们需要一个结构来存储数据元素,在这里涉及C语言的动态内存管理,开辟内存空间的知识点。其次知道了这个结构,我们还需要知道这个结构的空间大小和有效数据元素

2.接口涉及数据的插入和删除,空间的开辟就需要初始化空间,最后空间的开辟我们还需要销毁空间。

至此我们可以梳理出顺序表需要的东西

好啦,具体的代码我们放到下一篇文章具体讲解,这篇文章介绍到此结束啦,感谢各位,如果感兴趣可以点个赞哇。

下期预告:动态顺序表的实现(图文讲解附赠源码)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3