线性表

线性表的顺序和实现

  • 判断线性表的长度
  • 判断线性表是否为空

获取线性表中第i个元素的内容:

  • 判断第i元素是否在线性表的长度范围内,不在returb error
  • 在的话直接取值,renturn ok

线性表的插入

在线性表的第i个位置上,插入一个元素,考虑的问题:存储空间是否满了?插入位置是否合理?线性表的长度也要增加

首先判断存储空间,满了就不能让他插入,插入就会溢出

时间的复杂度:1.既不考最好的情况,也不考虑最坏的情况,我们考虑平均的情况,

 

线性表的删除

将线性表L中第i个元素删除:

元素逐个前移,覆盖掉被删除的元素,需要维护元素个数的记录

 

分析:顺序存储结构表示的线性表,在做插入或删除操作时,平均需要移动大约一半的数据元素.当线性表的数据元素量较大,

并且经常要对其做插入或删除操作时,这一点需要值得考虑.

 

线性表的链式表示和实现

  • 链式表示:用一组任意的存储单元存储线性表
    •   存储单元不要求连续:物理结构不反应逻辑结构
    •   不可以随机存取,但插入和删除方便
    •   需要两个域:一个表示数据本身,一个表示数据元素间的先后关联.- 一个结点
    •   结点中表示关联的部分为指针域,内部存放指针或链.n个结点链接成一个链表.

    

单链表:

  • 为每个元素关联一个链接,表示后继关系.
  • 结点:元素的存储映像,包括数据域和指针域.
  • 与表中n个元素对应的n个结点通过指针链接成一个链表.链表中每个结点只有一个指针域的存储映像,包括数据域和指针域
  • 头指针:指单链表第一个结点的存储位置的指针,整个链表的存取必须从头指针开始
    •   头指针是指链表指向第一个结点的指针,若链表有头结点,则指向头结点的指针
    •   头指针具体标识作用,常用头指针冠以链表的名字
    • 无论链表是否为空,头指针均不为空.是链表的必要元素
  • 头结点
    •   头结点是为了操作的统一和方便二设立的,放在第一元素结点之前,其数据域一般无意义
    •        头结点,对在第一元素结点前插入结点和删除第一结点,其操作与其他结点的操作就统一
    •   头结点不一定是链表的必须要素  

  

posted @ 2020-07-23 08:41  断浪狂刀忆年少  阅读(221)  评论(0编辑  收藏  举报