数据结构与算法基础---线性表



前言

本章主要讲线性表相关的知识,其中顺序表相对简单,链式表相对复杂一些,需要对指针的概念有一定的了解,后面章节也有在链式表基础上进行扩展的内容,还需要各位打好基础~

1 线性表的定义和特点

  线性表的定义

    由n(n>= 0)个数据元素(结点)a1,a2,…an组成的有限序列
    同一线性表中的元素必定具有相同特性,数据元素间的关系是线性关系
    其中数据元素的个数n定义为表的长度,当n=0时称为空表
    将非空的线性表(n>0)记作:(a1,a2,…an)
    这里的数据元素ai(1≤i≤n)只是一个抽象的符号,其具体含义在不同的情况下可以不同
    a1称为线性起点(起始结点),an称为线性终点(终端结点)
    数据元素ai的前一个元素称为直接前驱,后一个称为直接后继
    元素后的数字是下标,是元素的序号,表示元素在表中的位置
  线性表的逻辑特点

  (1)在非空的线性表,有且仅有一个开始结点a1,它没有直接前趋,而仅有一个直接后继a2
  (2)有且仅有一个终端结点an,它没有直接后继,而仅有一个直接前趋an-1
  (3)其余的内部结点ai(2≤ i ≤ n-1)都有且仅有一个直接前趋ai-1和一个直接后继ai+1
  线性表是一种典型的线性结构

2 案例引入

  一元多项式
  稀疏多项式(只记录系数不为0的项)
  图书信息管理系统
  上述三个案例只是简单介绍了线性表的使用场景,感兴趣的同学可以自行通过视频课程学习,链接地址在前言中有~
  总结

    线性表中数据元素的类型可以为简单类型,也可以为复杂类型
    许多实际应用问题所涉的基本操作有很大相似性,不应为每个具体应用单独编写一个程序
    从具体应用中抽象出共性的逻辑结构和基本操作(抽象数据类型),然后实现其存储结构和基本操作

3 线性表的类型定义

  抽象数据类型线性表的定义如下:

  ADT List{
    数据对象:D = {ai | ai∈Elemset,(i = 1,2,…,n,n≥0)}
    数据关系:R = {<ai-1,ai>|ai-1,ai∈D,(i = 1,2,…,n)}
    基本操作:
    InitList(&L); DestroyList(&L);
    ListInsert(&L,i,e); ListDelete(&L,i,&e);
    …等等
  } ADT List

   基本操作

  (1)InitList(&L) (Initialization List)
    操作结果:构造一个空的线性表L
  (2)DestroyList(&L)
    初始条件:线性表L已经存在
  

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值