数据结构与算法基础——第02周-线性表的顺序表示和实现(2.4.2)

一 线性表顺序存储结构示意图

线性表顺序存储结构示意图

顺序表的特点:以物理位置相邻表示逻辑关系。任一元素均可随机存取。(优点)

二 顺序表的顺序存储表示

2.1 顺序表元素(数组元素)——用一维数组表示顺序表

  • 地址连续
  • 依次存放
  • 随机存取
  • 类型相同

2.2 线性表长可变

  • 可删除
  • 可增加
  • 用一变量表示顺序表的长度属性

2.3 数组长度不可动态定义

一维数组的定义方式:用一变量表示顺序表的长度属性

1
类型说明符  数组名[常量表达式]

说明:常量表达式中可以包含常量和符号常量,不能包含变量。即C语言中不允许对数组的大小做动态定义。

1
2
3
4
5
#define LIST_INIT_SIZE 100//线性表存储空间的初始化分配量
typedef struct{
ElemType elem[LIST_INIT_SIZE 100];
int length;//当前长度
}SqList;

三 多项式的顺序存储结构类型定义

3.1 多项式定义

Pn(x)=p1xe1+p2xe2+...+pmxem对应线性表P=((p1,e1),(p2,e2),...,(pm,em))

1
2
3
4
5
6
7
8
9
10
#define MAXSIZE 1000 //多项式可能达到的最大长度
typedef struct{ //多项式非零项的定义
float p; //系数
int e; //指数
}Polynomial;

typedef struct{
Polynomial *elem; //存储空间的基地址
int length; //多项式中当前项的个数
}SqList; //多项式的顺序存储结构类型为SqList

3.2 用多项式类型定义图书