读书笔记之《数据结构》---第二章 线性表

本章目录

  1. 线性表的类型定义
  2. 线性表的顺序表示和实现
  3. 线性表的链式表示和实现
  4. 一元多项式的表示及相加

线性表的类型定义
现行表示n个数据元素的有限序列。
抽象类型的线性表定义如下图:
在这里插入图片描述
在这里插入图片描述
书中给出两种算法实现两个线性表的合并:
在这里插入图片描述
在这里插入图片描述

线性表的顺序表示和实现
线性表的顺序表示指的是用一组地址连续的存储单元依次存储现行表的数据元素。
表中第i个元素的存储位置如下,其中l是每一个元素占的存储单元:
在这里插入图片描述
顺序线性表插入和删除元素时,插入或删除位置之后的元素都需要移动位置。算法如下
在这里插入图片描述

线性表的链式表示和实现

链式存储的特点是用一组任意的存储单元存储线性表的数据元素,存储单元可以连续或不连续。每一个元素除了数据域外还需要一个指针域指向下一个元素。
在这里插入图片描述
链表插入删除元素时,不需要移动元素,只需修改指针的值。但查找时需要从指针头部开始便利。
利用数组实现链式结构称为静态链表,如下图所示:
在这里插入图片描述

循环链表:链表的最后一个结点的指针域指向头结点
在这里插入图片描述

双向链表:结点有两个指针域,一个指向前驱结点,一个指向后继结点。

一元多项式的表示及相加
一元多项式的存储有两种方式,顺序存储结构和链式存储结构。顺序存执结构指的是次方从0到n时分别将系数存储在顺序存储数组的下表为0到n的响应位置,例如:
在这里插入图片描述
该多项式需要长度为20001的数组N,N[0] = 1 , N[10000] = 3 , N[20000] = 2。
链式存储结构中,每一个结点存储两个数据,系数和指数。例如多项式A(x) = 7+3x+9x8+5x17,B(x) = 8x+22x7-9x8的链式存储结构如下:
在这里插入图片描述
相加是相当于A与B合并,相同指数项的系数相加。

猜你喜欢

转载自blog.csdn.net/qq_25744595/article/details/82803358