一、线性表的定义

线性表是n(n>=0)个具有相同特性的数据元素的有限序列。

线性表是最简单、最常用的一种数据结构

线性表属于线性结构的一种

如果一个数据元素序列满足:

(1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素;

(2)第一个数据元素没有前驱数据元素;

(3)最后一个数据元素没有后继数据元素

则可以称这样的数据结构为线性结构

二、线性表的种类

线性表的存储结构主要有两种,顺序存储结构链式存储结构

顺序存储结构的存放的线性表称作为顺序表,用链式存储结构存放的线性表称为线性链表

按照这个说法,之前所提到的java中的int数组等一维数组都是可以称为顺序表。

使用链式存储结构,则会有前趋和后继的说法

下列的图可以说明一点(图就这样子了,别吐槽了。。)

A1作为开头,所以没有前趋,A1的后继是A2

A2的前趋是A1,后继则是A3

A3是末尾,所以没有后继,A3的前趋是A2

三、线性表的运算

基本运算都在图中了,这里就不多写了,由于我们是使用java语言描述的,所以我们可将运算写成一个接口(抽象类),之后再由类去实现此接口,复写这些方法,可能这样说大家都不是很理解,没有关系,在下一节就会使用到此接口了

public interface ListIntf {
public int size(); //返回表的长度
public void clear(); //重置表为空表
public boolean isEmpty(); //判断表是否为空
public String get(int i); //取得表中第i个元素的值
public int indexOf(String s);//获得表中与数据元素s相等的第一个元素的位置(位序)
public String getPre(String s);//获得数据元素s的前趋
public String getNext(String s);//获得数据元素s的后继
public void insertElementAt(String s,int i);//在第i个位置之前插入新的数据元素s,表长度加1
public String remove(int i);//删除第i个数据元素,并返回其值,表长度减1
public String remove(String s); //删除数据元素s,并返回其值,表长度减1
}

数据结构(java版)学习笔记(一)——线性表的更多相关文章

  1. C语言数据结构基础学习笔记——基础线性表

    线性表是指具有相同数据类型的n(n>=0)个数据元素的有限序列,它具有一个表头元素和一个表尾元素,并且每一个数据元素最多只有一个直接前驱和一个直接后继. 线性表的顺序存储也叫作顺序表,它的特性是 ...

  2. 数据结构学习笔记 <1> 线性表

     一.线性表的抽象数据类型描述 类型名:线性表(List) 数据对象集:线性表示n(>=0)个元素构成的有序序列(a1,a2,……,an) 操作集:线性表L∈List, 整数i表示位置,元素X∈ ...

  3. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  4. JAVA Web学习笔记

    JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...

  5. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  6. 20145213《Java程序设计学习笔记》第六周学习总结

    20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...

  7. 【Head-First设计模式】C#版-学习笔记-开篇及文章目录

    原文地址:[Head-First设计模式]C#版-学习笔记-开篇及文章目录 最近一年断断续续的在看技术书,但是回想看的内容,就忘了书上讲的是什么东西了,为了记住那些看过的东西,最好的办法就是敲代码验证 ...

  8. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  10. java多线程学习笔记——详细

    一.线程类  1.新建状态(New):新创建了一个线程对象.        2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中, ...

随机推荐

  1. Golang Go Go Go part2:变量及常量声明

    三.关键字及内置预声明常量.类型.函数 1.关键字 Go有25个关键字,只能用在语法允许的地方,不能作为名称使用,它们是: break          default         func    ...

  2. XLua----热更新

    一.xLua 环境配置 1).Xlua中  Plugin  Xlua复制到 需要热更新的工程中---->Assets子目录 2).开启宏HOTFIX_ENABLE File---->bui ...

  3. Samba部署共享服务

    在本地PC文件共享 Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享资源软件,实现了Windows和Linux系统间的文件共享 1.安装Samba服务程序    yum in ...

  4. 别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(4)

    六.Libvirt 对于Libvirt,在启动虚拟机之前,首先需要define虚拟机,是一个XML格式的文件 列出所有的Instance # virsh list Id    Name         ...

  5. NeuChar 平台使用及开发教程 索引

    什么是 NeuChar? NeuChar 是由盛派(Senparc)团队发布的新一代跨平台服务系统,其中包含了开放的跨平台通讯标准及核心计算模块(Senparc.NeuChar.dll)以及配套的云管 ...

  6. [Swift]LeetCode501. 二叉搜索树中的众数 | Find Mode in Binary Search Tree

    Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred ...

  7. [Swift]LeetCode784. 字母大小写全排列 | Letter Case Permutation

    Given a string S, we can transform every letter individually to be lowercase or uppercase to create ...

  8. [Swift]LeetCode1018. 可被 5 整除的二进制前缀 | Binary Prefix Divisible By 5

    Given an array A of 0s and 1s, consider N_i: the i-th subarray from A[0] to A[i] interpreted as a bi ...

  9. SpringBoot配置 druid 数据源配置 慢SQL记录

    spring: datasource: url: jdbc:mysql://127.0.0.12:3306/test?autoReconnect=true&useUnicode=true&am ...

  10. 解决Eclipse中无法查看Java源码

    1.点 "window"-> "Preferences"-> "Java" -> "Installed JRES ...