首页 > 其他分享 >第二章、线性表

第二章、线性表

时间:2024-06-09 23:32:02浏览次数:38  
标签:结点 顺序 线性表 元素 链表 插入 第二章

目录

一、线性表的基本概念

1.定义

2.线性表的一些操作

(1).基本操作(增删改查)

(2).线性表其他常用操作

(3)在定义这些操作时的注意事项

3.重要考点总结

4.易错题总结

二、顺序表

1.顺序表定义

2.顺序表实现方式

3.顺序表元素的插入和删除

(1)插入元素

(2)删除元素

4.顺序表查找

(1)按数组下标查找

(2)按元素值查找

5.易错题总结

(1)选择题

(2)简答题

三、链表

1.单链表

(1)单链表的结构体定义

(2)插入元素

①带头结点插入

②不带头结点插入

(3)删除元素

①按位序删除

②指定结点删除

(4)查找元素

①按位查找

②按值查找

③遍历链表求链表长度

(5)根据给定元素创建单链表

①头插法

②尾插法

③总结

2.双链表

(1)初始化

(2)插入元素

(3)删除元素

(4)遍历

3.循环链表

4.静态链表

四、顺序表和链表对比

1.对比角度

(1)逻辑结构

(2)存储结构

(3)基本操作

(4)选用场景

2.总结

五、易错题总结

1.选择题

2.简答题

六、本章归纳总结

七、参考


一、线性表的基本概念

1.定义

这里线性表是指的逻辑结构,它可以使用顺序存储也可以使用链式存储,和物理结构区分开。

2.线性表的一些操作

这些操作是数据结构中线性表的基础,掌握它们对于理解和应用线性表至关重要。

(1).基本操作(增删改查)

初始化表 (InitList(&L)) :这个操作用于构造一个空的线性表L,并为其分配必要的内存空间。这是从无到有的过程,为后续的操作提供一个空的框架。

销毁操作 (DestroyList(&L)) :这个操作用于销毁线性表,并释放线性表L所占用的内存空间。这是从有到无的过程,确保内存的有效管理和释放。

插入操作 (ListInsert(&L, i, e)) :在表L中的第i个位置上插入指定的元素e。这个操作实现了线性表的“增”功能,可以根据需要在任意位置添加元素。

删除操作 (ListDelete(&L, i, &e)) :删除表L中第i个位置的元素,并通过参数e返回被删除元素的值。这个操作实现了线性表的“删”功能,可以根据需要移除元素。

按值查找操作 (LocateElem(L, e))):在表L中查找具有给定关键字值的元素。这个操作用于检索特定值的元素,实现“查”的功能

按位查找操作 (GetElem(L, i)) :获取表L中第i个位置的元素的值。这也是“查”功能的一种,通过位置索引来获取元素。

(2).线性表其他常用操作

求表长 (Length(L)) :返回线性表L的长度,即L中数据元素的个数。

输出操作 (PrintList(L)) :按前后顺序输出线性表L的所有元素值。

判空操作 (Empty(L)) :判断线性表L是否为空,若为空则返回true,否则返回false。

(3)在定义这些操作时的注意事项

命名要有可读性:函数名和参数应该具有明确的含义,方便理解和使用。

参数传递:在某些情况下,如需要修改参数的值并返回到调用者时,需要使用引用(如C/C++中的&)来传递参数。

3.重要考点总结

4.易错题总结

问题:

        02. 以下(        )是一个线性表。

        A.由"个实数组成的集合                 B.由100个字符组成的序列

        C.所有整数组成的序列                  D.邻接表

解答:

        02. B

        线性表定义的要求为:相同数据类型、有限序列。选项C的元素个数是无穷个,错误;选项A集合中的元素没有前后驱关系,错误;选项D属于存储结构,线性表是一种逻辑结构,不要将二者混为一谈。只有选项B符合线性表定义的要求。

二、顺序表

        顺序表就是一种顺序表示的线性表,形式上就是我们常说的数组

        在考察顺序表时,其实就是对数组的操作(数据结构的选择题算法大题常考察),在本章中我们着重对选择题的知识点进行总结,算法大题常考查的是查找和排序,这部分后面会有专题总结

        ※选择题知识点主要是掌握顺序表的基本操作:初始化、增、删、改、查

        

标签:结点,顺序,线性表,元素,链表,插入,第二章
From: https://blog.csdn.net/hehe_soft_engineer/article/details/139548564

相关文章

  • 数据结构严蔚敏版精简版-线性表以及c语言代码实现
    线性表、栈、队列、串和数组都属于线性结构。线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他每个数据元素都有一个前驱和后继。1 线性表的定义和特点如此类由n(n大于等于0)个数据特性相同的元素构成的有限序列称为线性表。线性表中元素的个数n定......
  • 第二章:Three.js 环境搭建
    第二章:环境搭建本章将详细介绍如何搭建Three.js的开发环境,包括安装Node.js和npm,配置Three.js项目,以及在HTML中引入Three.js。2.1安装Node.js和npmNode.js是一个开源的、跨平台的JavaScript运行时环境。npm是Node.js的包管理工具,用于安装和管理JavaS......
  • 数据结构(C语言严蔚敏版)——第二章 线性表
    前言:    对这一章节的学习,我深有体会,只有把链表这一重点弄清楚,才算开始真正的正式学习数据结构,刚开始学习链表的朋友可能会感到有点绕脑,但是当你掌握链表以后,你会发现其实原来学习编程还是很有意思的,慢慢在学习中找到成就感,不断收获。   当然,这章的重点还是在......
  • 玄机应急响应-第二章
    日志分析-apache日志分析一,提交当天访问次数最多的IP,即黑客IP:129::16555192.168.200.21192.168.200.2115192.168.200.381192.168.200.48$cataccess.log.1|awk-F'''{print$1}'|sort|uniq-cflag{192.168.200.2}二,黑......
  • 第二章 InnoDB存储引擎
    2.1InnoDB存储引擎概述InnoDB从MySQL5.5版本开始是默认的表存储引擎,是第一个完整支持ACID事务的MySQL存储引擎特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,同时被设计用来最有效利用以及使用内存的CPU 2.2InnoDB存储引擎的版本InnoDB存储引擎包含于所有MySQL......
  • 【云原生进阶之数据库技术】第二章-Oracle-原理-4.4.2-SGA架构
    1系统全局区:SGA1.1SGA概念简介        SGA是一块可读写内存区域,与Oracle后台进程(backgroundprocesses)一起构成了数据库实例。所有代表用户执行的服务器进程都能读取实例SGA里的信息。有一些进程能在数据库运行时写入SGA。需要注意的是,服务器和后台进程本身并不在......
  • 习题整理《C++17从入门到精通》第二章-变量和基本类型
                                                             //复习用,如有错误,请指正1.下面哪些是不合法的变量标识符?为什么?@ohd      *zara    a2bc    move_name    a_123myname50  _......
  • 【维度建模】【第二章】Kimball维度建模技术概述
    2.1基本概念2.1.2维度建模研讨维度模型应该由业务、模型设计者通过充分的讨论得到。2.1.3四步骤维度设计过程维度设计期间主要设计一下四个主要的决策:选择业务过程声明粒度确认维度确认事实2.1.4业务过程表示一次业务的行为。例如获得订单、学生课程注册,2.1.5粒度粒......
  • 数据结构·线性表
    线性表一、逻辑结构和基本操作1.逻辑结构具有相同数据类型的n个数据元素的有限序列,表长n,n=0为空表表头:第一个元素表尾:最后一个元素除第一个元素外,每个元素有且仅有一个直接前驱除最后一个元素外,每个元素有且仅有一个直接后继2.基本操作initList(&L);len(L);locateE......
  • 【第二节】C/C++数据结构之线性表
    目录一、线性表基本说明1.1基本概念1.2抽象数据类型1.3存储结构1.4插入与删除的区别1.5顺序存储和链式存储的优缺点二、链表2.1基本概念2.2抽象数据类型2.3单链表的定义2.4单链表的基本操作2.5单链表模板形式的类定义与实现三、单向循环链表四、双链表......