其他分享
首页 > 其他分享> > 线性表《一》

线性表《一》

作者:互联网

【引子】多项式的表示:同一个问题可以有不同的存储方法;有一类共性问题,有序线性序列的组织和管理

顺序存储结构表示非零项:相加过程,比较两个多项式当前对应项的指数(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