首页 > 其他分享 >数据结构简介

数据结构简介

时间:2024-01-01 22:31:44浏览次数:25  
标签:存储 Java 简介 元素 抽象类 数据结构 数据 结构

什么是数据?

数据是指所有能输入计算机并被计算机程序处理的符号的集合。源程序、文档、地图、照片其实都是数据。

数据结构

数据结构分为逻辑结构物理结构。逻辑结构:主要是数据元素之间的逻辑关系,物理结构指的是数据结构在计算机种的表示及存储方式。

逻辑结构

包含集合、线性结构、树结构和图结构

集合

由元素构成,它是数学中的一个基本概念。集合中各元素之间没有次序关系。(是不是可以理解为Java中的set集合)

线性结构

数据元素之间存在着先后次序关系的结构,每个元素都对应着一个唯一的次序,这个次序决定着元素的位置。

(Java中的List)

树结构

是一种层次结构,其中的数据元素按层排列。(Java中的hashMap)

图结构

一种网状结构,其中的每个数据元素都可以与多个其他的数据元素相关。数结构可以被看作图的特例。树结构和图结构都是比线性结构复杂的结构,它们也称为非线性结构。

根据数据元素之间存在的关系的元素个数划分,线性结构中元素之间是一对一的关系,树结构式一对多的关系,而图结构是多对多的关系。

数据结构简介_抽象类

存储结构

  1. 顺序存储

逻辑上相邻的数据元素存储到物理位置相邻的存储单元中。其实Java中的一维数组,就是采用的顺序存储方法。相应的存储结构称为顺序存储结构。

  1. 链式存储方法

逻辑上的数据元素,不要求其存储的物理位置也相邻,通常借程序中的指针表示数据元素之间的逻辑关系。相应的存储结构称为链式存储结构。(Java中的linkedlist)

  1. 索引存储方法

除保存数据元素以外,还针对数据元素建立索引表。索引表由索引项组成,索引项指示数据元素所在的物理位置。通过索引项,可以加快数据元素的查找速度。(数据库添加索引)

  1. 散列存储方法

散列存储方法是一种特殊方法,它根据数据元素的关键字计算出该元素的物理存储位置。通常,将称为散列表的一维数组作为保存元素的结构。(Java中的hashmap)

注意:

1.在数据结构采用顺序存储结构保存时,对于逻辑上相邻的数据元素,其存储单元的物理位置也相邻,因此存储空间必然是连续的。

2.采用链式存储结构存储数据时,通常使用指针来指示数据元素之间的逻辑关系,指针保存的是相关数据元素的存储地址。所以,这个两个元素在内存中可能是相邻的,也可能是不相邻的,所有元素的存储空间不一定是连续的。

3.顺序存储结构和链式存储结构既可以保存线性结构,又可以保存非线性结构。至于那种存储结构更节省存储空间,要视具体情况而定。


抽象数据类型

包括类型的名字及对各个操作的刻画,也就是要明确“做什么”。对于每个操作,要规定操作的名字、操作执行的前提条件、输入和输出分别是什么。每个操作通常表示为一个函数或方法。(Java中的抽象类)


Java中的抽象类是一种特殊的类,它不能被实例化,只能被用作其他类的父类。抽象类通常用于为子类提供一个模板或者基础,它定义了一些抽象方法,这些方法没有具体的实现,需要由子类来实现。子类必须实现所有的抽象方法,否则就必须声明为抽象类。

抽象类的关键字是"abstract",使用抽象类的语法如下:

Copy Codepublic abstract class AbstractClass {
    // 抽象方法
    public abstract void abstractMethod();

    // 非抽象方法
    public void concreteMethod() {
        // 实现代码
    }
}

需要注意的是,抽象类中不一定要有抽象方法,但是如果一个类中包含抽象方法,那么这个类必须声明为抽象类。抽象类不能被实例化,因此它的构造函数不能被调用。抽象类可以被用作其他类的类型,例如作为方法的参数或返回值类型。


今天先到这,睡个好觉,晚安


标签:存储,Java,简介,元素,抽象类,数据结构,数据,结构
From: https://blog.51cto.com/AmbitionGarden/9058623

相关文章

  • 做题记录:数据结构 I
    标*的题目是个人认为质量较高或比较符合个人喜好的题目。*I.P5278算术天才⑨与等差数列尝试寻找一个序列满足为等差数列的充分必要条件。显然需要有\(\max-\min=(r-l)k\)。直接要求等差的话,信息不好合并。但等差的限制有一个必要条件是,差分序列的\(\gcd\)为\(k......
  • 【数据结构】详细剖析线性表
    顺序表与链表的比较导言大家好,很高兴又和大家见面啦!!!经过这段时间的学习与分享,想必大家跟我一样都已经对线性表的相关内容比较熟悉了。为了更好的巩固线性表相关的知识点,下面我们一起将线性表这个章节的内容梳理一遍吧。一、线性表线性表的相关概念线性表时具有相同数据类型的个数据......
  • 对比学习简介
    1.引言在本教程中,我们将介绍对比学习领域中的相关概念。首先,我们将讨论这种技术背后相关的理论知识;接着,我们将介绍最常见的对比学习的损失函数和常见的训练策略。闲话少说,我们直接开始吧!2.举个栗子首先,让我们通过简单的例子来增加对对比学习概念的理解。我们不妨来玩一个许多孩......
  • 2023 408数据结构总结
    持续更新完善中。一、线性表顺序存储的有序表非空双向链表时间复杂度二、栈、队列和数组稀疏矩阵3三元组:(行、列、值)表示矩阵非0元素三、树与二叉树二叉树二叉树的遍历5先序遍历NLR(根左右)中序遍历LNR后序遍历LRN==【题目】==树与二叉树的应用4哈弗曼编码的加......
  • 【数据结构】链式家族的成员——循环链表与静态链表
    循环链表与静态链表导言大家好!很高兴又和大家见面啦!!!经过前面的介绍,相信大家对链式家族的成员——单链表与双链表的相关内容都已经熟练掌握了。前面我们重点介绍了通过C语言来实现单链表与双链表的一些基本操作,希望大家私下能够多多练习一下,帮助自己去吸收消化这些内容。在今天的篇......
  • 数据结构应用之桶排序
    问:有10G的订单数据,希望订单金额(假设都是正整数)进行排序,但我们内存有限,只有几百MB,如何进行排序?答:因内存有限,需要排序的数据量巨大,所以,此时需要外部排序,外部排序采用的是一种分治思想,外部排序最常用的是多路归并排序,即将大数据切成多份一次可以载入内存的小数据,对小数据进行内......
  • Dubbo简介
    Dubbo是什么?Dubbo官网地址:http://dubbo.apache.orgApacheDubbo是一款易用、高性能的WEB和RPC框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。"Dubbo3已在阿里巴巴内部微服务集群全面落地,用于升级运行多年的HSF2框架。"什么......
  • 【数据结构】C语言实现双链表的基本操作
    双链表导言大家好,很高兴又和大家见面啦!!!经过前面几个篇章的内容分享,相信大家对顺序表和单链表的基本操作都已经熟练掌握了。今天咱们将继续分享线性表的链式存储的第二种形式——双链表。在今天的内容中,咱们将介绍双链表的创建以及一些基本操作,接下来跟我一起来看看吧!一、单链表与双......
  • 数据结构实验代码分享 - 4
    迷宫与栈问题(图的应用)【问题描述】以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。输入:行列迷宫,0表示无障碍,1表示有障碍输出:一条Path或“NOPATH” 注:参考了《数据结......
  • 全国计算机等级考试简介 School of Computer Science and Engineering
    全国计算机等级考试简介SchoolofComputerScienceandEngineering阅读量:1185     发布时间:2014-05-25分享到: 全国计算机等级考试(NationalComputerRankExamination,简称NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查应试人......