线性表基本概念及其基本操作实现

    1.线性表

具有相同数据类型的n(n>=0)个数据元素的有限序列.

L=a1,a2,a3,a4,.......an

其中a1是唯一的"第一个元素",an是唯一的"最后一个元素"。這样,除了第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后继。

注意:线性表是一种逻辑结构,表示元素之间一对一的相邻关系。

    2.线性表的基本操作

InitList(&L);  //初始化表,构造一个空的线性表.

Length(L);  //求表长,即L中数据元素的个数

LocateElem(L,e);  //按值查找操作,在表L中查找具有关键字值得元素.

GetElem(L,i);  //按位查找操作,获取表L中第i个位置的元素的值.

ListInsert(&L,i,e);  //插入操作,在表L中第i个位置插入指定元素e

ListDelete(&L,i,&e); //删除操作,删除表L中第i个位置的元素,并用e返回删除元素的值

PrintList(L);  //输出操作,按照顺序输出线性表L的所有元素的值

Empty(L); //判空操作,若L为空表,则返回true,否则返回false

DestroyList(&L); //销魂操作,销魂线性表,并释放线性表L的存储空间.


    3.线性表的顺序表示

它是用一组地址连续的存储单元,依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素物理位置也相邻。

其顺序存储类型描述为:

#define MAXSIZE 50

typedef struct{

ElemType data[MAXSIZE];

int length;

}SqList;

          上述這种分配方式可以算得上是静态分配,如何我们需要在动态申请,可以考虑以下這种方式:

#define INITSIZE 50

typedef struct{

ElemType *data;

int length,Maxsize;

}SqList;

           顺序表最主要的特点是可以进行随机访问的特性,即通过首地址和元素序号可以在o(1)的时间内找到指定的元素.

   顺序表的存储密度高,每个节点只存储数据元素,而且顺序表逻辑上相邻的元素物理上也相邻。


 













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值