线性表《一》
作者:互联网
【引子】多项式的表示:同一个问题可以有不同的存储方法;有一类共性问题,有序线性序列的组织和管理
顺序存储结构表示非零项:相加过程,比较两个多项式当前对应项的指数(a,j)数组实现
链表结构存储非零项:链表中每个结点存储多项式中的一个非零项,包括系数和指数两个数据域以及一个指针域
coef | expon | link |
typedef struct PolyNode *Polynomial; struct PolyNode{
int coef;
int expon;
Polynomial link;
}
【什么是线性表】由同类型数据元素构成有序序列的线性结构;表中元素个数称为线性表表尾的长度;线性表没有元素时,称为空表;表起始位置称表头,表结束位置称表尾。
《一》线性表的抽象数据类型描述
类型名称:线性表(List)
数据对象集:线性表是n(>=0)个元素构成的有序序列(a1,a2,...an)
操作集:线性表L€List,整数i表示位置,元素X€ElementType,线性表基本操作主要有:
1、List MakeEmpty():初始化一个空线性表L;
2、ElementType FindKth(int K,List L):根据位序K,返回相应元素;
3、int Find(ElementType X,List L):在线性表L中查找X的第一次出现位置;
4、void Insert(ElementType X,int i,List L):在位序i前插入一个新元素X;
5,void Delete(int i,List L):删除指定位序i的元素;
6,int Length(List L):返回线性表L的长度n.
《二》线性表的存储实现
利用数组的连续存储空间顺序存放线性表的各元素
Data | a1 | a2 | ...... | ai | ai+1 | ...... | an | ...... | - |
typedef sturct LNode*List; struct LNode{ ElementType Data[MAXSIZE]; int Last; }; struct LNode L; List PtrL;
访问下标为i的元素:L.Data[i]或PtrL->Data[i]
线性表的长度:L.Last+1或PtrL->Last+1
主要操作实现
1,初始化(建立空的顺序表)
List MakeEmpty() { List PtrL; PtrL=(List)malloc(sizeof(struct LNode)); PtrL->Last=-1; return PtrL; }
2,查找
标签:线性表,int,元素,List,PtrL,struct 来源: https://www.cnblogs.com/mylove1104/p/15494477.html