线性表学习笔记

Java集合中的List代表一种集合元素允许重复,允许有序的集合。因此,可以通过下标索引来访问List集合中的元素。

那么在什么情况下需要使用List集合?

如果有一组数据节点,其中多个数据节点之间有松散的一对一关系,类似于A数据节点之后是B数据节点的这种关系,我们应该使用List的集合来保存。换一个角度来看,存在这种松散的,一对一关系的多个数据节点就是典型的线性结构,应该使用线性表来保存它们。Java的List集合本身就是线性表。其中ArrayList是线性表的顺序存储实现。而LinkedList则是线性表的链式存储实现。

线性表概述

线性表(linear list)是具有相同类型的n(n≥0)个数据元素a0,a1,…an-1组成的有限序列。其中n 称为线性表的长度,当n=0时称为空线性表,n>0时称为非空表。线性表也是最基本、最简单、也是最常用的一种数据结构。 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的,循环链表除外(循环链表逻辑层次上也是一种线性表)。

线性表的第一种存储结构:顺序

线性表的顺序存储结构是指用一组地址连续的存储单元依次存放线性表的元素。顺序线性表中相邻元素,两个元素a和a+1对应的存储地址loc(a)和loc(a+1)也是相邻的。也就是说:在顺序结构线性表中数据元素的物理关系和逻辑关系是一致的。

获取顺序存储线性表中每个元素的存储起始地址的时间相同,读取表中数据元素的时间也相同。而且顺序表中每个元素都给随机存取,因此顺序存储的线性表表示一种随机存取数据结构。所以顺序存储一般使用数组实现。
基本操作

借助数组来描述线性表。除了用数组来存储线性表的元素之外,线性表还应该有表示线性表的长度属性,所以用结构类型来定义线性表类型。

#define  OK   1
#define  ERROR   -1
#define  MAX_SIZE  100
typedef  int  Status ;
typedef  int  ElemType ; 
typedef  struct  sqlist
{   ElemType  Elem_array[MAX_SIZE] ;
    int length ;
} SqList ;

1.顺序线性表初始化

 Status Init_SqList( SqList *L ) 
{  L->elem_array=( ElemType * )malloc(MAX_SIZE*sizeof( ElemType ) ) ;
if ( !L -> elem_array ) return  ERROR ; 
else {   L->length= 0 ;    return OK ;  }  
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值