线性表的概念

线性表List:零个或多个数据元素的有限序列。n=0为空表。每个元素有且仅有一个直接前驱和直接后继。

线性表的抽象数据类型:

ADT List

Data

/*线性表的数据对象集合为{a1,a2,...,an},每个元素的类型均为DataType.其中,除第一个元素a1外,每一个元素有且只有一个直接前驱元素,除了最后一个元素an外,每一个元素有且只有一个直接后继元素。数据元素直接是一对一的关系。*/

Operation

InitList(*L);  //初始化操作,建立一个空的线性表

ListEmpty(L);  //若线性表为空,返回true,否则返回false

ClearList(*L);  //清空线性表

GetElem(L,i,*e);  //查找线性表中的第i个位置的元素值,并赋值给e

LocateElem(L,e);  //查找线性表L中与给定值e相等的元素,如果查找成功,则返回第一个相同的元素在L,中的下标;否则,返回0表示失败

ListInsert(*L,i,e);  //在线性表L的第i个位置插入元素e

ListDelete(*L,i,*e);  //删除线性表L中第i个位置元素,并用e返回其值

ListLength();  //返回线性表L的长度

end ADT

时间: 2024-09-30 02:00:09

线性表的概念的相关文章

二、线性表的概念与实现

1.线性表的本质与相关操作 线性表的定义?线性表(List)是零个或多个数据元素的集合?线性表中的数据元素之间是有顺序的?线性表中的数据元素个数是有限的?线性表中的数据元素的类型必须相同线性表的性质?a0为线性表的第一个元素,只有一个后继?an为线性表的最后一个元素,只有一个前驱?除a0和an外的其它元素ai,既有前驱,又有后继?线性表能够逐项访问和顺序存取线性表的一些常用操作?创建线性表?销毁线性表?清空线性表?将元素插入线性表?将元素从线性表中删除?获取线性表中某个位置的元素?获取线性表的长

数据结构与算法之线性表

前言 上一篇<数据结构和算法之时间复杂度和空间复杂度>中介绍了时间复杂度的概念和常见的时间复杂度,并分别举例子进行了一一说明.这一篇主要介绍线性表. 线性表属于数据结构中逻辑结构中的线性结构.回忆一下,数据结构分为物理结构和逻辑结构,逻辑结构分为线性结构.几何结构.树形结构和图形结构四大结构.其中,线性表就属于线性结构.剩余的三大逻辑结构今后会一一介绍. 线性表 基本概念 线性表(List):由零个或多个数据元素组成的有限序列. 注意: 1.线性表是一个序列. 2.0个元素构成的线性表是空表.

线性表之顺序存储结构实现(上)

一,线性表的概念以及数学定义 1.线性表的概念 零个或多个数据元素的有限序列.首先说明这是一个序列,也就是说数据元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且仅有一个前驱和后继. 2.数学定义 若将线性表记为(a1...ai-1,ai,ai+1....an),则线性表中,ai-1领先于ai,ai领先于ai+1,则称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素,当i=1,2....n-1的时候,ai有且仅有一个直接后继元素,当i=2,3

数据结构(Java描述)之线性表

基础概念 数据结构:是相互之间存在一种或多种关系的数据元素的集合. 逻辑结构和物理结构 关于数据结构,我们可以从逻辑结构和物理结构这两个维度去描述 逻辑结构是数据对象中数据元素之间的关系,是从逻辑意义上去描述的数据之间的组织形式. 逻辑结构有4种: 集合结构(数据元素之间仅以集合的方式体现,元素之间没有别的关系) 线性结构(数据元素之间存在一对一的关系) 树(数据元素之间为一对多或多对一的关系) 图(数据元素之间为多对多的关系) 物理结构则是逻辑结构在计算机中内存中的存储形式,分为两种: 顺序存

02.线性表(一)顺序存储结构

顺序存储结构 一.线性表基本概念 1.线性表定义 线性表(list)是指零个或多个数据元素的有限序列,所有数据元素为相同数据类型且一个数据元素可以由多个数据项组成.若将线性表记为(a1,..ai-1,ai,ai+1...,an),线性表元素的个数n(n>0,n=0时为空表)定义为线性表的长度,其中ai-1是ai 的直接前驱元素,ai+1是ai的直接后继元素. 2.线性表的抽象数据类型 ADT 线性表(List) Data 线性表的数据对象集合为{a1,a2,....an},每个元素的类型均匀Da

算法系列15天速成——第七天 线性表【上】

原文:算法系列15天速成--第七天 线性表[上] 人活在社会上不可能孤立,比如跟美女有着千丝万缕的关系,有的是一对一,有的是一对多,有的是多对多. 哈哈,我们的数据也一样,存在这三种基本关系,用术语来说就是: <1>  线性关系. <2>  树形关系. <3>  网状关系. 一: 线性表 1 概念: 线性表也就是关系户中最简单的一种关系,一对一. 如:学生学号的集合就是一个线性表. 2 特征: ① 有且只有一个“首元素“. ② 有且只有一个“末元素”. ③ 除“末元素”

数据结构与算法--线性表系列(循环链表、双向链表)

hello,everybody,今天我们来学习线性表的最后两种形式,循环链表.双向链表.这两种链表,是链式存储结构的不同形式.书归正传,我们先来看看循环链表吧. 大家思考一个问题,我们把线性表各个元素比作下图的路线图上的城市: 我们的线性表各个结点的指针,都是指向唯一的后继结点,线性表的终端结点的指针为空.这样的话,如果我们在南京,我们需要先访问南京右j边的城市,再访问南京左边的城市.根据线性表的结构,我们只能返回上海,从上海依次访问到北京.因为我们的终端结点的指针为空,如果直接访问南京右边的城

《数据结构》复习之线性表(顺序表和链表)

线性表的概念 线性表的比较 线性表的数据结构 顺序表的算法操作 双链表的补充 总结 1.线性表的概念 线性表的存储结构有顺序存储结构和链式存储结构两种.前者成为顺序表,后者称为链表. 顺序表: 顺序表就是把线性表中的所有元素按照其逻辑顺序,一次存储到从指定的存储 位置开始的一块连续的存储空间中,如下图所示. 链表 在链表的存储中,每一个节点不仅包含所存元素本身的信息,还包含元素之间的逻辑关系的信息,即前驱节点包含后继节点的地址信息,这样就可以通过前驱节点中的地址信息方便地找到后继节点的位置,如下

详谈线性表的有关操作(Java、C两种语言)

    之前在学习线性表一章的时候,有些地方都是比较含糊的带过,只是把一些比较难理解的地方花了好长时间才明白....然后写出代码,存在博客上面.从今天开始,将重新把数据结构这本书走一遍,用C和Java两种语言,尽量把每个部分都可以用代码实现一遍,使印象更加深刻,也算是重新学习一下C语言啦~~.而且现在新学期开始学Oracle啦,也会把一些学习过程中的代码以及重点难点记录下来,希望大家会关注哦~~    线性表的概念都在之前的文章有提到,今天来说一下有关线性表的具体操作(数组实现),分为以下几个部