线性表《一》

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

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

 

posted @   存在与虚无  阅读(63)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示