数据结构 项目一

news/2025/9/18 21:22:44/文章来源:https://www.cnblogs.com/hjb-0829/p/19099753

一:数据结构的基本概念
数据结构----研究数据的特性及数据之间存在的关系
算法+数据结构=程序。其中数据结构是指数据逻辑结构和物理结构,算法是对数据运算的描述。
用计算机解决一个具体问题时,首先从具体问题中抽象出一个适当的数学模型,然后设计一个能解此数学模型的算法,最后编出程序,进行测试,并调整程序直至得到最终答案。
在数据结构中数据之间的关系主要有两种,它们分别是线性关系和非线性关系,其中非线性关系又可以分为树形关系和图关系。
数据的逻辑结构和存储结构是密不可分的两个方面,在实现算法时,首先应解决数据的存储问题。数据之间要考虑存储,又要考虑数据单位之间的关系,在确定了存储结构后,根据存储的结构再来确定相应操作的实现方法。
数据元素也叫结点,它是组成数据的基本单位。一般情况下,一个结点含有若干个字段(数据项),字段是构成数据的最小单位(bit)。
数据对象也称为数据元素类,是指具有相同性质的数据元素的集合。
数据结构 Data-Structure=(D,R)
D是数据元素的有限集合,R是D上的关系。
根据数据元素间关系的不同特性,通常有四类基本结构

  1. 集合结构
  2. 线性结构
  3. 树形结构
  4. 图形结构(网状结构)
    逻辑结构:结点和结点之间的逻辑关系称为数据的逻辑结构。
    存储结构:数据及数据之间的关系在计算机中的存储表示称为数据的存储结构(物理结构)。
    数据的存储结构可用4种基本存储方法得到:
  5. 顺序存储方法
  6. 链接存储方法
  7. 索引存储方法
  8. 散列存储方法
    数据处理是指对数据进行查找、插入、删除、合并、排序、统计及简单计算等操作的过程。
    数据类型是指一个值的集合以及在这些值上定义的一组操作的总称。
    抽象数据类型(Abstract Date Type 简称ADT)是指抽象数据组织和与之相关的操作。每一个操作由它的输入和输出定义。
    抽象数据类型可以定义为:
    ADT=(D,S,P)
    其中D表示数据对象,S是D上的关系集,P是对D的基本操作集。
    格式:
    ADT 抽象数据类型名{
    数据对象:<数据对象的定义>
    数据关系:<数据关系的定义>
    基本操作:<基本操作的定义>
    }
    数据对象和数据关系的定义用伪码来描述,基本操作的定义格式为:
    基本操作名(参数名)
    初始条件:<初始条件描述>
    基本操作:<操作结果描述>
    二:算法和算法分析简介
    算法是执行特定计算的有穷过程,一个完整的算法应该满足以下五条性质:
    (1)正确性 算法必须完成所期望的功能,得到的结果必须是正确的。
    (2)确定性 组成算法的指令必须是清晰的、无二义性。也就是说算法的每一个步骤都必须准确定义。准确定义是指所描述的行为必须是对人或机器而言是可读的、可执行的。每一步必须在有限的时间内执行完毕,同时必须是我们所力所能及的,能够依赖于具体的工具来执行的工序。
    (3)有穷性 算法必须在有限的步骤内结束。如果一个算法由无限的步骤组成,该算法不可能有计算机程序实现。
    (4)有效性 算法的指令必须具有可执行性。
    (5)可终止性 算法必须可以终止,即不能进入死循环。
    一个算法可以没有输入,但是至少应该有一个输出。
    算法用语言结构来介绍就分为:
  9. 常量和变量
  10. 基本数据类型(逻辑类型 字符类型 整数类型 浮点类型)
  11. 常用运算符(算术运算符 位运算符 关系运算符 逻辑运算符)
  12. 条件选择语句 (if if-else switch)
  13. 循环语句 (for while do-while)
  14. 输入、输出语句 (输入:System.in.read() 输出:System.out.println() )
  15. 其他一些语句 (break continue)
  16. 注释形式 (各语言不一样 如python #为单行注释 三引号为多行注释)
    一个好的算法应该考虑以下方面:
    1.正确性 (在合理的数据输入下,能在有限的运行时间内得出正确的结果。)
    2.运行时间 (算法中包含简单操作的次数叫做算法的时间复杂性,它是算法运行时间的一个相对量度)
    3.占用的存储空间 (算法在运行过程中所占用的存储空间)
    4.简单性 (算法的简单性可以使正确性的证明比较容易,并且便于编写、修改、阅读和调试)
    一般度量一个程序的执行时间有两种方法:事后统计方法和事前分析估算的方法(通常使用后者)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

好烦

我不行了,一做初赛题就有一种莫名其妙的烦躁,根本就写不进去,一点都冷静不下来

完整教程:.NET驾驭Word之力:玩转文本与格式

完整教程:.NET驾驭Word之力:玩转文本与格式2025-09-18 21:15 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

用 Go 语言与 Tesseract OCR 识别英文数字验证码

一、安装与配置 安装 Tesseract OCR 你需要先安装 Tesseract OCR 引擎。具体步骤如下: Ubuntu: 更多内容访问ttocr.com或联系1436423940 sudo apt-get update sudo apt-get install tesseract-ocr macOS: brew instal…

FreeRTOS和LVGL组合使用教程

前言 关于这两者组合使用的教程,网上可以说是各种方法都有,移植的时候我也有遇到各种问题,在此处记录一下解决过程 问题 栈空间的分配问题 FreeRTOS和LVGL的栈分配都尽量多一点,不然后面的任务可能创建失败 lvgl心…

Codeforces 1646 记录

目录C. Factorials and Powers of Two / 阶乘数与二的幂 D. Weight the Tree / 树上赋权 E. Power Board / 乘方表 F. Playing Around the Table / 圆桌打牌C. Factorials and Powers of Two / 阶乘数与二的幂 题意简述…

综合与实现流程【p3】--(DSP-存储)优化PS系统集成

(一)资源优化 1 DSP优化 创建优化的DSP映射 创建文件 dsp_optimized_pe.v: `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // 优化的PE模块 - 直接使…

Linux中 sed命令忽略大小写匹配

001、[root@localhost test]# ls a.txt [root@localhost test]# cat a.txt ## 测试数据 22 abc44 88 32 ABC11 43 14 aBc44 86 [root@localhost test]# sed -n /abc/p a.txt ## 匹配abc 22 abc44 88 [r…

VISA Resource name

VISA Resource name📌 步骤放置 VISA Open在 Block Diagram 放一个 VISA Open 节点。Resource name 输入 TCPIP0::192.168.2.121::inst0::INSTR(就是你之前的地址)。VISA Write在 VISA Open 的 session 输出连到 V…

【STL库】哈希封装 unordered_map/unordered_set - 教程

【STL库】哈希封装 unordered_map/unordered_set - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

Docker 常用命令详解与参数说明 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

7zip压缩解压缩-测试CPU性能

前言全局说明在B站刷大佬视频的时候,看到UP在Debign linux 上用7z测试CPU性能,惊讶,7z还有这功能。 赶快打开手边的电脑,看看 Windows 上的 7z 有没有这功能,一用,果然有这个功能。 以前想知道CPU性能就只能装些…

交叉编译openharmony版本的gdb

1465 cd ../gmp-6.3.0/ 1466 ./configure --prefix=/system/ CC=aarch64-linux-gnu-gcc --build=`./config.guess` --target=aarch64-linux-gnu --host=aarch64-linux-gnu 1467 make 1468 …

高数

1 求 \(\lim_{n\to\infty}\left(1-\frac 1n\right)^{n^2}\) 解: 首先证明 \(\lim_{n\to\infty}\left(1-\frac 1n\right)^{n}=e^{-1}\)。 \[\begin{align*} \lim_{n\to\infty}\left(1-\frac 1n\right)^{n} &=\lim_…

06-排序操作

06-排序操作$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");介绍 排序操作很常用,比如查询学员成绩,按照成绩降序排列。排序的SQL语法: select .. from .…

P5666 [CSP-S2019] 树的重心

分为 \(x \ne rt\) 和 \(x = rt\) 两种情况计算. 对于第一种情况,不难发现我们合法的裁减下来的连通块大小是在一个区间范围之内的,于是 DFS 时用一棵树状数组修改即可(因为这个大小可能是子树大小可能是子树外大小,这…

Java运行机制

Java 程序运行机制 编译型(compile) 解释型 程序运行机制 ![机制图](C:\Users\asus\Desktop\图集\屏幕截图 2025-09-18 204707.png)

除自身以外数组的乘积-leetcode

题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 …

【2022】SDRZ夏令营游记

为什么2022的游记会在2025年发? 因为感觉洛谷博客快扛不住了,决定开始搬运。今天是夏令营最后一天了,在机房里坐不住了,写篇游记来纪念一下。 day0: 这天是gryz65级三个校区的信竞同学第一次大会师。我成功与一区…

rapidXML解析xml文件

1.rapidXML介绍 RapidXML 是一个轻量级、高性能的 XML 解析库,以单头文件形式提供(rapidxml.hpp 及辅助头文件),适合在 C++ 中解析中小型 XML 文档。获取 RapidXML:从 官方网站 下载头文件(rapidxml.hpp、rapidx…

2025.9.17 - 呓语

今天在Ubuntu虚拟机上安装配置了Hadoop,Hbase和ZooKeeper下面开始idea连接虚拟机Hbase. 1、在Hbase里创建StudentAndCourse表: (1)启动Hadoop(2)启动Hbase(3)进入shell界面(4)创建表(5)插入数据(6)查看表数据2、id…