前言

为什么要学习数据结构与算法,如果你学会了做安卓,javaweb,前端等,都是你的武功秘籍,但是如果你的内功不够好,再厉害的功夫也是白费。

数据结构和算法:什么是数据结构,什么是数据,在计算机内部数据为01010101。。。,数据是我们生活中一切的事务都可以表示为数据,如你和你朋友聊天的话都是数据,朋友圈的发表内容也是内容。

数据结构是数据之间相互存在的一种或多种特定的关系,数据之间的关系。数据结构的关系,要么一对一,或者一对多。

er图,实体关联图。数据与数据之间的关系,分:

  • 图形结构
  • 树形结构
  • 线性结构
  • 集合结构

以上图形的圆不代表相同的元素,都是不同的小圈圈哦~

还有两个存储结构:

顺序存储结构和链式存储结构

抽象数据类型

那么什么是抽象数据类型,是一个数字模型以及定义在该模型上的一组操作,数据类型是将相同的一组性质的集合,和定义在此集合上的操作。

线性表

线性表,线性结构,表结构。

线性表有两种不同的存储方式

顺序存储方式线性表存储位置连续,方便查询各个元素。优点在查找的时候效率比较高的,但在插入和删除的时候效率比较低。

链式存储方式线性表,对于链表存储的单元是可以连续的,也可以不连续,在链式中存储包含datanext->data

P p1=new P();
p1.data = "data";
P p2=new P();
p1.data = p2;

对于链式存储结构,优点是插入和删除效率高,而查询效率低。

链式和顺序存储优缺点

顺序存储方式线性表优点在查找的时候效率比较高的,但在插入和删除的时候效率比较低。

对于链式存储结构,优点是插入和删除效率高,而查询效率低。

循环链表

循环链表为一种链式存储结构,它的最后一个结点指向头结点,形成一个环,这种头尾相连的单链表称为单循环链表,简称循环链表

循环链表中的任何一个结点出发,它都能够找到其他结点,循环链表的操作单链表的操作是一样的,差别就在于算法中的循环条件不同而已。

双向循环链表也叫双链表,是单向循环链表的每个结点中,再设置一个指向其前驱结点的指针域,双向链表是链表的一种。

结语

  • 本文主要讲解 Java内功秘籍-线性表
  • 下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注

第一阶段:Java内功秘籍-线性表的更多相关文章

  1. Java数据结构之线性表(2)

    从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...

  2. Java数据结构之线性表

    从这里开始将要进行Java数据结构的相关讲解,Are you ready?Let's go~~ java中的数据结构模型可以分为一下几部分: 1.线性结构 2.树形结构 3.图形或者网状结构 接下来的 ...

  3. JAVA通过继承线性表来实现有序表

    1,对于线性表而言,里面的元素是无序的,可以随意地将新元素增加到线性表中而不需要考虑该元素在线性表中的位置.但是,对于有序表而言,其中的元素是按照某种方式进行排序的,因此在有序表中插入元素时,需要按照 ...

  4. JAVA迭代器学习--在JAVA中实现线性表的迭代器

    1,迭代器是能够对数据结构如集合(ADT的实现)进行遍历的对象.在遍历过程中,可以查看.修改.添加以及删除元素,这是它与一般的采用循环来遍历集合中的元素不同的地方.因为,通常用循环进行的遍历操作一般是 ...

  5. 数据结构(Java描述)之线性表

    基础概念 数据结构:是相互之间存在一种或多种关系的数据元素的集合. 逻辑结构和物理结构 关于数据结构,我们可以从逻辑结构和物理结构这两个维度去描述 逻辑结构是数据对象中数据元素之间的关系,是从逻辑意义 ...

  6. Java Se :线性表

    Java的集合框架分为两个系列,Collection和Map系列.在大学期间,学习数据结构时,好像学习了线性表.非线性表.树,哎,都给忘了.其实,在Collection系列内部又可以分为线性表.集合两 ...

  7. 数据结构(1) 第一天 算法时间复杂度、线性表介绍、动态数组搭建(仿Vector)、单向链表搭建、企业链表思路

    01 数据结构基本概念_大O表示法 无论n是多少都执行三个具体步骤 执行了12步 O(12)=>O(1) O(n) log 2 N = log c N / log c N (相当于两个对数进行了 ...

  8. 线性表 及Java实现 顺序表、链表、栈、队列

    数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...

  9. 线性表的顺序存储结构——java

    线性表的顺序存储结构:是指用一组地址连续的存储单元一次存放线性表的元素.为了使用顺序结构实现线性表,程序通常会采用数组来保存线性中的元素,是一种随机存储的数据结构,适合随机访问.java中ArrayL ...

随机推荐

  1. 非virtual函数,用指针进行upcast

    void print_func(A* p) { p -> print(); } int main() { A a(); B b(,); //a.print(); //b.print(); pri ...

  2. 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)

    分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算. 以AlexNet网络为例,以下是该网络的参数结构图. AlexNet网络的层结构如下: 1.Input:       图 ...

  3. Balls(扔鸡蛋问题)

    4554 BallsThe classic Two Glass Balls brain-teaser is often posed as:“Given two identical glass sphe ...

  4. centos安装tree命令

    centos安装tree命令 sudo yum -y install tree windows安装tree命令 我的另一篇

  5. test case VS test scenario

    ---恢复内容开始--- 1. test case: how to test --如何测试 test scenario: what to  be tested  --测试什么 2. test scen ...

  6. R语言-箱型图&热力图

    1.箱型图 boxplot()函数 > metals<-read.csv("metals.csv",header=TRUE) #读取文件和列名 > boxplot ...

  7. MySQL的安装流程与入门

    MySQl是一种关系型数据库,存放的是文字数据,它是以“表”的形式进行存储的.由于MySQl的实用性和不收费,它在世界上是应用最多的数据库,但是,它不支持大量数据写入.接下来,我将为大家分享一下我学习 ...

  8. yii2.0如何优化路由

    比如我的路由是  http://localhost/basic/web/?r=site/index 现在想改成   http://localhost/basic/web/site/index 的形式 ...

  9. NLTK 统计词频

    import nltk Freq_dist_nltk = nltk.FreqDist(list) for k,y in Freq_dist_nltk: print str(k),str(y)

  10. elasticsearch5安装

    环境: centos7 es 5.4.3 es安装 一.下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsear ...