2.1 线性表的类型定义

一个线性表是n个数据元素的有限序列。

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

(2)销毁结构 DestroyList(&L)

(3)引用型操作

(4) 修改型操作

一个算法举例:

假设有两个集合A和B分别用两个线性表LA和LB表示(即:线性表中的数据元素即为集合中的成员),现要求一个新的集合A= A∪B,且以线性表表示。

要求对线性表作如下操作: 扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去。

1 从线性表LB中依次取得每个数据元素:GetElem(LB, i, e )

2 将e的值在线性表LA中进行比较:LocateElem(LA, e, equal( ))

3 若不存在,则插入之。ListInsert(LA, n+1, e)

2.2 线性表的顺序表示和实现

1. 顺序表的定义

把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。
随机存取的存储结构。只要确定了存储线性表的起始位置,线性表中的任一数据元素可随机存取。)

2. 线性表的动态分配顺序存储结构(动态一维数组)

3. 顺序表的操作

1)初始化操作:构造一个空表。设置表的起始位置、 表长及可用空间。

2)在线性表中指定位置前插入一个元素

3)在线性表中删除第i个元素

顺序存储结构的优缺点:

• 优点

–逻辑相邻,物理相邻

–可随机存取任一元素

–存储空间使用紧凑

• 缺点

–插入、删除操作需要移动大量的元素

–预先分配空间需按最大空间分配,利用不充分

2.3 线性表的链式表示和实现

2.3.1 线性链表

单链表,结点中只含一个指针域的链表

(感觉这课不是很有必要这么发博客,打算直接在pdf做笔记然后更百度网盘了)

数据结构与算法 第二章线性表(48课时课程笔记)Data Structure and Algorithms的更多相关文章

  1. JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)

    前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...

  2. 数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解

    数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接 ...

  3. C语言数据结构——第二章 线性表

    二.线性表 2.1-线性表简介 2.1.1-线性表的定义 线性表是由若干个相同特性的数据元素组成的有限序列.若该线性表不包含任何元素,则称为空表,此时长度为0,当线性表不为空时,表中的元素的个数就是线 ...

  4. java版数据结构与算法第二章数组

    数组由一组具有相同类型的数据元素组成,并存储在一组连续存储单元中.一维数组是常量. 二维数组:若一维数组中的数据元素又是一堆数据结构,我们称之为二维数组.二维数组可以看成是n个列向量组成的线性表. 数 ...

  5. 【学习总结】java数据结构和算法-第二章-数据结构和算法概述

    总目录链接 [学习总结]尚硅谷2019java数据结构和算法 github:javaDSA 目录 数据结构和算法的关系 几个实际编程中的问题 线性结构和非线性结构 数据结构和算法的关系 几个实际编程中 ...

  6. 数据结构与算法系列2 线性表 链表的分类+使用java实现链表+链表源码详解

    数据结构与算法系列2.2 线性表 什么是链表? 链表是一种物理存储单元上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表的链接次序实现的一系列节点组成,节点可以在运行时动态生成,每个节点包括两个 ...

  7. 《数据结构与STL-第二章 线性表》读书笔记

    线性表 定义 线性表(linear list)是由零个或多个相同类型的数据元素构成的有限序列. 存储结构 顺序存储 最简单的存储方法是顺序存储法,即把线性表的数据元素按照逻辑次序顺序地放在一组地址连续 ...

  8. javascript实现数据结构与算法系列:线性表的静态单链表存储结构

    有时可借用一维数组来描述线性链表,这就是线性表的静态单链表存储结构. 在静态链表中,数组的一个分量表示一个结点,同时用游标(cur)代替指针指示结点在数组中的相对位置.数组的第0分量可看成头结点,其指 ...

  9. javascript数据结构和算法 第二章 (数组) 二

    字符串表示的数组 join() 和 toString() 函数返回数组的字符串表示.这两个函数通过将数组中的元素用逗号分隔符切割,返回字符串数组表示. 这里有个样例: var names = [&qu ...

  10. 数据结构(c语言版,严蔚敏)第2章线性表

    弟2章线性表

随机推荐

  1. 一文带你认识MindSpore新一代分子模拟库SPONGE

    [本期推荐专题]物联网从业人员必读:华为云专家为你详细解读LiteOS各模块开发及其实现原理. 摘要:基于MindSpore自动并行.图算融合等特性,SPONGE可高效地完成传统分子模拟过程,利用Mi ...

  2. 华为云数据库GaussDB(for Influx)揭秘第二期:解密GaussDB(for Influx)的数据压缩

    摘要:物联网设备产生的数据是典型的时序数据,而时序数据库是存储时序数据的专业数据库系统,因此数据压缩对时序数据库来说是一项必不可少的能力. 本文分享自华为云社区<华为云数据库GaussDB(fo ...

  3. 开心档之CSS 测验

    ​ 目录 CSS 测验 ​编辑 CSS 测验 CSS测验是一种衡量前端开发人员对CSS的熟练程度的测试.通过CSS测验,可以评估一个人对CSS语言的掌握程度和应用能力,帮助公司或招聘方挑选合适的人才. ...

  4. 数据飞轮拆解车企数据驱动三板斧:数据分析、市场画像、A/B 实验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎数智平台(VeDI)2023 数据飞轮汽车行业研讨会在上海举办,活动聚焦汽车行业数字化转型痛点,从字 ...

  5. 【设计模式】分享 Java 开发中常用到的设计模式(一)

    分享 Java 开发中常用到的设计模式(一) 前言 不知道大家在开发的时候,有没有想过(遇到)这些问题: 大家都是按需要开发,都是一个职级的同事,为什么有些人的思路就很清晰,代码也很整洁.易懂:而自己 ...

  6. EasyUI DataGrid 没有数据

    //判断后台返回数据是否没数据,没数据DataGrid添加一行 $(this).datagrid('appendRow', { itemid: '<div style="text-al ...

  7. C# RSA 非对称加密

    代码: RSAHelper.cs(RSA加密工具类): using System; using System.Security.Cryptography; using System.Text; nam ...

  8. Codeforces Round #618 (Div. 2) A~E

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 1300A. Non-zero 题意:给你一个数组,每次操作你可以使其中任意元素的值+1,问最少 ...

  9. AtCoder Beginner Contest 214 (D并查集,E反悔贪心,F公共子序列DP)

    题目链接:Here ABC水题, D - Sum of Maximum Weights 上图中最大权 \(9\) 对答案的贡献是这条边两边的连通块的 size 的乘积再乘以 9 受到上面的启发,我们可 ...

  10. vue 路由跳转页面不刷新

    vue 路由跳转页面不刷新 点击打开视频讲解地址在router-view 里边添加 :key="$route.fullPath"