课本总结:1:线性表

Posted 亿钱君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课本总结:1:线性表相关的知识,希望对你有一定的参考价值。


章节导读:

  • 最简单且最常用的一种数据结构

1.线性表的逻辑结构

1.1:定义

  • 由一组具有相同属性的数据元素构成
  • 在一些复杂的的线性表中,每一个数据元素又可以由若干数据项组成(例如:一张表,每一行就是一个记录,每行有多个数据项)

1.2:主要操作

  • Initiate()初始化:构造一个空的线性表
  • Insert(i ,x)插入:第i个元素之前插入数据元素x
  • Delete( i ) 删除:删除第i个元素
  • Locate(x)查找定位:如表中存在x,返回x所在位置序号,否则返回Null
  • Length()求长度:返回线性表数据元素的个数
  • Get(i) 存取;返回线性表的第i个元素,否则返回null
  • Traverse()遍历:依次输出线性表的每一个元素
  • Copy(c)复制:将线性表复制到线性表C中
  • Merge(A,B) 合并:将A和B合并为线性表

2.线性表的顺序存储及运算实现

2.1:线性表的顺序存储结构

1:概念

  • 线性表的顺序存储中,前后两个元素在存储空间中是相邻的,且前驱元素一定存储在后继元素前面
  • 由于线性表所有数据元素属于同一类型,故每个元素在存储器中占用的空间大小相同
  • 因此,在线性表中查找一个元素很方便(例如:第一个存储地址为loc,每个数据元素占d个字节,则线性表第i个元素在计算机中的存储地址为loc + id)

2:利用数组来表示线性表的顺序存储结构的优点

  • 数组间的元素地址是连续的
  • 数组中所有元素的数据类型相同

3:一维数组

  • 地址计算公式:起始地址 + 每个元素所在字节 * 第i个元素

4:二维数组

  • 地址计算公式:

2.2 线性表在顺序存储结构下的运算

1:顺序表插入操作

插入步骤

  • 先把下标length-1至下标待插入元素的位置依次往后移
  • 然后把数据元素插入插入到该表
  • 最后把当前数据元素个数+1
    public void insert(int index,Student st){

       if(index < 0 || index >length){
           System.out.println("插入位置出错");

       }
       if(index+1>maxlength){
           System.out.println("线性表已满");

       }
       //   把length-1至下标index中的数组元素依次往后移
       for(int j = length;j>index;j--) {
           students[length] = students[length - 1];
           students[index] = st;
       }
           length++;

       }

2:顺序表删除操作

删除步骤

  • 依次把待删除元素到数组末尾元素往前移动
  • 最后把当前数据元素个数-1
public Object delete(int i) {
        if (length == 0) {
            System.out.println("顺序表已经空,无法删除");
        }
        if (i < 0 || i > length - 1) {
            System.out.println("参数错误");
        }
        for (int j = i; j < length - 1; j++) {
            students[j] = students[j + 1];
        }
        length--;
        return students[i];

    }

2.3 线性表存储结构的特点

  • 设计方便
  • 数据元素的最大个数需预先确定
  • 插入、删除运算效率低
  • 存储空间不便于扩充

3.线性表的链式存储结构

链表详解

以上是关于课本总结:1:线性表的主要内容,如果未能解决你的问题,请参考以下文章

课本总结:1:线性表

课本总结:1:线性表

2-10-归并扩展的线性单链表-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版

2-5-归并链式存储的单链表-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版

2-6-静态链表-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版

5-6-广义表(扩展线性链表存储表示)-数组和广义表-第5章-《数据结构》课本源码-严蔚敏吴伟民版