前言

为什么要学习数据结构与算法,如果你学会了做安卓,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. win2012R2打Windows8.1-KB2919355 问题

    解决方法 https://blog.csdn.net/qwq1503/article/details/65916426

  2. python+appium-desktop:安卓(android)7.0以上使用appium无法定位元素(无法refresh)且 无法运行脚本

    --解决方法: 启动appium时配置中添加: "automationName":"uiautomator2" --扩展: 想支持安卓7.0及以上版本需要满足一 ...

  3. 使用rpm-build制作nginx的rpm包

    2014-11-27 11:05:49   一.RPM包的分类 RPM有五种基本的操作功能:安装.卸载.升级.查询和验证. linux软件包分为两大类: (1)二进制类包,包括rpm安装包(一般分为i ...

  4. mongodb安装及配置

    下载安装篇 MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/download-center#com ...

  5. Django的rest_framework认证组件之全局设置源码解析

    前言: 在我的上一篇博客我介绍了一下单独为某条url设置认证,但是如果我们想对所有的url设置认证,该怎么做呢?我们这篇博客就是给大家介绍一下在Rest_framework中如何实现全局的设置认证组件 ...

  6. 浏览器DOM事件触发

    除用户人为交互触发事件外,用js脚本触发事件的一般流程为 创建事件 var e = Event('event_name', {key: value, ...}) 分发事件到 event.target ...

  7. [leetcode]4. Median of Two Sorted Arrays俩有序数组的中位数

    There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...

  8. BigDecimal用法总结

    BigDecimal用法总结 BigDecimal常用于金额的计算,下面总结下这次项目中BigDecimal的用法. 1.加减乘除 2.设置精度 3.取反 加减乘除分别调用函数 [java] view ...

  9. 事件委托在ios下面失效

    $(document).on("click","目标class",function(){ //安卓下点击可以,ios下面失效 }) 百度了下说是H5新定义的, ...

  10. 一、Windows许可证即将过期怎么办

    当Win10系统提示“windows许可证即将过期”窗口时,直接点击“转到‘设置’”按钮,此时将显示“Windows激活”界面,从此界面中可以获取当前Win10版本信息. 由于Win10激活即将过期, ...