线性表

线性表是有序数据元素的集合,分为顺序储存和链式存储两种形式。顺序储存利用一维数组实现,链式存储通过链接域连接元素。此外,还介绍了广义表(线性表的推广)和多重链表的概念,如十字链表在稀疏矩阵存储中的应用。
摘要由CSDN通过智能技术生成

线性表是由同一类型的数据元素构成的有序序列的线性结构, 线性表中元素的个数称为线性表的长度。线性表中元素的前一个元素叫做当前元素的直接前驱;后一个元素叫做当前元素的直接后继。 

线性表的顺序储存

线性表的顺序存储指的是内存中使用地址连续的一块存储空间顺序存放线性表的各元素。一般利用一维数组来表示顺序存储的数据区域,同时需要用一个Last变量来记录当前线性表中最后一个元素在数组中的位置,所以通常将数组变量Data和变量Last封装成一个数据结构作为顺序表的类型。

typedef int Position;
/*position是数组的整数下标,从0开始,前面提到的位序是从1开始。*/
typedef struct LNode *PtrToLNode;
struct LNode{
    ElementType Data[MAXSIZE];
    Position Last;
};
typedef PtrToLNode List;
/*可以利用List定义线性表*/
/*线性表长度可以通过L->Last+1得到*/

 初始化

List MakeEmpty()
{
    List L;
    L = (List)malloc(sizeof(struct LNode));
    L->Last = -1;
    return L;
}

 查找

查找与给定值相同的数据元素

#define ERROR -1

Position Find(List L, ElementType X)
{
    Position i = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值