Java基础 - 线性表基本概念

从数据的逻辑结构来分,数据元素之间存在的关联关系被称为数据的逻辑结构。归纳起来,应用程序中的数据大致有如下四种基本的逻辑结构:

1、集合:数据元素之间“同属于一个集合”的关系

2、线性结构:数据元素之间存在一个对一个的关系。

3、树形结构:数据元素之间存在一个对多个的关系。

4、图状或网状结构:数据元素之间存在多个对多个的关系。


对于常用的数据结构,可以将其简单地分为线性结构和非线性结构。其中线性结构主要是线性表,非线性结构则主要是树和图。本次讨论线性表。


线性表(Linear List)是由 n(n >= 0)个数据元素(节点)a1a2a3a4……an组成的有序序列。

线性表中的每个元素必须具有相同的结构(即拥有相同的数据项)。线性表是线性结构中最简单也是最常用的一种数据结构。很多人容易把线性表的数据元素理解成简单的数据项,其实不然。如下图所示就是一个线性表。

员工编号姓名年龄学历
0001孙悟空500专科
0002猪八戒400本科
0003沙和尚300本科
0004唐三藏40硕士
……………………

对于上表的数据而言,它本质上依然是线性表,只是他的每个数据元素都是一个“符合”的对象,每个数据元素包括四个数据项(也被称为Field):员工编号,姓名,年龄,学历。


关于线性表还可以有如下定义:

1、线性表中包含的数据元素个数 n  被称为表的长度,当线性表的长度为 0 时该表也被称为空表。

2、当 n > 0 时,表可以表示为:(a1,a2,a3,a4,a5,……an)


对于一个非空的、有限的线性表而言,它总具有如下基本特征

(1)、总存在唯一的“第一个”数据元素。

(2)、总存在唯一的“最后一个”数据元素。

(3)、除第一个数据元素外,集合中的每一个数据元素都只有一个前驱的数据元素。

(4)、除最后一个数据元素外,集合中的每一个数据元素都只有一个后继的数据元素。

(关于前驱和后继的概念可以去查查有关有向图中拓扑排序的书籍)。


如果要实现一个线性表,程序首先需要确定该线性表的每个数据元素。接下来,应该为该线性表实现如下操作:
(1)、初始化:通常是一个构造器,用于创建一个空的线性表。

(2)、返回线性表的长度:该方法用于返回线性表中数据元素的个数。

(3)、获取指定索引处的元素:根据索引返回线性表中的数据元素。

(4)、按值查找数据元素的位置:如果线性表中存在一个或多个与查找值相等的数据元素,那么该方法返回第一个搜索到的值相等的数据元素的索引,如果没有则返回 -1。

(5)、直接插入数据元素:向线性表的头部插入一个数据元素,线性表的长度 +1、

(6)、向指定位置插入元素:向线性表的指定索引处插入一个数据元素,线性表的长度 +1、

(7)、直接删除数据元素:删除线性表头部的数据元素,线性表的长度 -1.

(8)、删除线性表中指定索引处的数据元素:删除线性表中指定索引处的数据元素,线性表的长度-1.

(9)、判断线性表是否为空:该方法判断线性表是否为空,如果线性表为空,则返回 true,如果不为空,则返回 false。

(10)、清空线性表:将线性表清空。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值