大话数据结构Java版第一节
大话数据结构Java版第一节
为追求学习中的完美,再次拿起书本梳理数据结构与算法,此笔记是按照程杰老师的《大话数据结构》为教材进行学习,如有不妥之处请联系作者删除。
程序设计 = 数据结构 + 算法
1、基本概念
- 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合;
- 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合;
- 可以输入到计算机中;
- 能被计算机程序处理。
- 数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
- 数据项:一个数据元素可以由若干个数据项组成;
- 数据项是数据不可分割的最小单元。
- 数据对象:是性质相同的数据元素的集合,是数据的子集。
2、逻辑结构与物理结构
按照视点的不同,数据结构可分为逻辑结构和物理结构。
2.1、逻辑结构
是指数据对象元素之间的相互关系。可以分为下面几种:
- 集合结构:集合中的数据元素除了同属一集合外,他们之间没有任何关系。
- 线性结构:线性结构中的数据元素之间是一对一的关系。
- 树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。
- 图形结构:图形结构的数据元素是多对多的关系。
逻辑结构是针对具体问题的,是为了解决某个问题,在对问题的理解基础上,选择一个合适的数据结构来表示数据元素之间的逻辑关系。
2.2、物理结构(存储结构)
- 是指数据的逻辑结构在计算机中的存储形式。
- 数据元素的存储结构有两种:顺序存储 和 链式存储
- 顺序存储结构
- 是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
- 链式存储结构
- 是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
- 逻辑结构是面向问题的,而物理结构是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。
3、抽象数据类型
3.1、数据类型
- 数据类型:是指一组性质相同的值的集合及定义在此集合的上的一些操作总称。
- 抽象是指抽取事物具有的普遍性质。
- 抽出问题的特征而忽略非本质的细节是对具体事物的一个概括;
- 抽象是一种思考问题的方式,它隐藏了复杂的细节,只保留实现目标所必须的信息。
3.2、抽象数据类型
- 对已有的数据类型进行抽象,就有了抽象数据类型。
- 抽型数据类型(Abstract Data Type ADT):是指一个数学模型及定义在该模型上的一组操作。
- 抽象的意义在于数据类型的数学抽象特征。
- 抽象数据类型体现了程序设计中 问题分解、抽象和信息隐藏的特性。
大话数据结构Java版第一节相关推荐
- Java入门 第一节 计算机的基础概念+Java环境配置
文章目录 1 计算机基本知识了解 1.1 啥是计算机? 1.2 计算机硬件系统 1.3 计算机软件系统 1.3.1 程序 1.4 计算机语言 1.5 计算机快捷键介绍 1.6 常见的Dos命令操作 2 ...
- 数据结构(Java版 2022-10-30)
第一章:算法介绍 数据结构与算法面试题" 一.字符串匹配问题:有一个字符串str1="计算机科学与技术学院欢迎您!" 和另一个字符串 str2="计算机科学与技 ...
- 数据结构(Java版2022-10-29)
第一章:算法介绍 数据结构与算法面试题" 一.字符串匹配问题:有一个字符串str1="计算机科学与技术学院欢迎您!" 和另一个字符串 str2="计算机科学与技 ...
- 微信公众平台深度开发JAVA版第一季 08.接收普通消息1
上一节讲了开发的接口接入这一部分,这是非常重要的. 实现业务的逻辑应该写在POST方法这一块. GET是消息验证用的,验证接口那一块的. XML数据包:腾讯服务器传过来的数据是XML格式的传到你的业务 ...
- 数据结构Java版实验五_实验五数据结构综合应用 20162310
分析系统架构 Sprite精灵类 ISprite精灵类是所有类的父类 CombatAircraft战斗机类 首先确保战斗机完全位于Canvas范围内,每隔7帧发射单发黄色子弹. protected v ...
- 数据结构(java版)SortedSeqList(排序顺序表)
SortedSeqList(排序顺序表) 代码部分: public class SortedSeqList<T extends Comparable<? super T>> e ...
- 数据结构java版txt,图解数据结构:使用Java
图解数据结构:使用Java 下载 mobi epub pdf ☆☆☆☆☆ 胡昭民 著 下载链接在页面底部 发表于2021-03-10 图书介绍 出版社: 清华大学出版社 ISBN:9787302402 ...
- 微信公众平台深度开发JAVA版第一季 22.微信猜数字活动4
select count(*) from huo t where t.shuzi='0' 这个SQL语句查不查询得到记录取决于两个条件:第一个是数据库里面有没有这个数字,第二个是getCountByS ...
- 微信公众平台深度开发JAVA版第一季 15.响应被动消息3
微信开发难度不大,但是逻辑关系很强. 这节课主要讲微信接口,至于在J2EE平台怎么把程序构造的更好不在这节课里面讨论. package net.wxinterface; import java.io. ...
- 大话数据结构 java源代码_大话数据结构(八)Java程序——双向链表的实现
packagecom.aclie.dataStructe4.sqeList;public classMyDoubleLinkList {private int length =0;//当前长度 pri ...
最新文章
- java opengl es_Java-Android-使用openGL ES绘制3D然后绘制2D
- 从央视到谷歌:聊一聊竞价广告的机制设计
- 《孤岛惊魂5》游戏中的地形渲染技术-网格生成
- 为什么我喜欢Java的细节
- mysql sql security_MySQL笔记-definer与SQL SECURITY
- 常见Web安全漏洞及测试方法(转载)
- 仿写网易云-项目初始化-扫描二维码登录
- SQLHelper蓦然回首
- CentOS7常用操作-笔记
- D:\ProgramData\Anaconda3\envs\test_onnx\python.exe: No module named pip
- java中IOException是什么异常
- 运维知识讲解之电脑局域网服务器的密码设置和修改
- 新一代开源免费的轻量级 SSH 终端,非常炫酷好用
- 利用JS来实现表格的全选、全不选、反选以及删除的功能
- 日志(Logger)
- 计算机专业二本可以考cfa,计算机专业的CFA考生的备考经验分享
- stm32f407探索者开发板(一)——资源介绍(顺便说下无人机的进度状况)
- 企业邮箱哪个品牌好?
- html+javascript登录注册界面源码
- 元宇宙:6层框架和3个核心底层技术