线性表及其实现

本文介绍了线性表的概念,包括一元多项式的顺序和非零项表示,探讨了顺序存储结构的优缺点,并详细阐述了线性表的链式存储实现,包括初始化、查找、插入和删除等基本操作。此外,还提及了广义表的相关内容。
摘要由CSDN通过智能技术生成

多项式的表示

一元多项式及其运算
在这里插入图片描述

  1. 顺序存储结构直接表示
    a[i]=ai,aix^i。指数i为索引,而数组存储对应第i个项的系数。
    每个分量代表系数。 在这里插入图片描述
    但当表示多项式x+3x^2000,需要2001个分量,造成空间的浪费

  2. 顺序存储结构表示非零项
    非零项aix^i:系数ai和指数i,可以将一个多项式堪称一个(ai,i)二元组的集合。
    每个分量包含系数和指数。

结构数组:数组分量是由系数ai和指数i组成的结构。按指数大小有序存储,按递降顺序存储。
在这里插入图片描述

  1. 链表结构存储非零项
    链表中的结点存储多项式中的一个非零项,包括系数和指数两个数据域以及一个指针域。
    在这里插入图片描述

线性表(Linear List)

由同类型数据元素构成有序序列的线性结构。
基本操作有

void InitList(SqList &L); //初始化一个空线性表L
void GetElem(SqList L, int i, ElemType &e);	// 根据位序i,返回相应的元素e
int LocateElem(SqList L, ElemType e, int (*compare)(ElemType, ElemType));//在线性表L中查找e的第一次出现位置
int  ListInsert(SqList &L, int i, ElemType e);//在位序i前插入一个新元素X
int ListDelete(SqList &L, int i, ElemType &e);//删除指定位序i的元素
int ListLength(SqList L);//返回线性表L的长度n
#define MAX_LENGTH  50
#define LISTINCREMENT 100
typedef int ElemType;
typedef struct 
{
   
	ElemType *elem;//首地址
	int length;//当前长度
	int listsize;//最大长度
}SqList;
  1. 初始化(建立空的顺序表)
void InitList(SqList &L)//构造一个空的线性表L
{
   
	L.length = 0;
	L.listsize = MAX_LENGTH;
	L.elem = (ElemType *)malloc(sizeof<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值