和小白一起学数据结构六之基本概念总结
一起学数据结构之绪论基础概念五天前甚至对markdown语法都不是很熟悉现在却觉得没有这个语法的创作页面没有灵魂哈哈。其实这个东西一年前就有人推荐给博主了当时只是看一下觉得麻烦没怎么走几步回过头来才发现因为内心的不自信与它错过了一年。所以这个也是今天除了知识以外想和各位道友分享的一点点小心得——永远不要因为不自信觉得一件东西看起来难就放弃它。不要有任何心理负担就开始做回过头来时你一定会发现自己已经走出去很远也得到了很多意向不到的东西加油给正在学习的你一、内容要点一什么是数据结构1.用计算机解决问题需要几个步骤从实际问题抽象出数学模型设计解决此数学问题的算法编译、调试程序直至得到最终答案。2.问题的类型例1:图书管理系统、新生信息登记系统、酒店入住登记系统等此类文章管理的数学模型中计算机处理的对象间一般存在着一对一的线性关系所以叫线性数据结构例2:计算机与人机对弈问题、游戏中触发模型和步骤等此类游戏博弈的数学模型中计算机的处理对象间一般存在着一对多的数据关系它叫树形数据结构。因为对应关系可看作一个倒置的树此类关系结构是非线形的。例3:人际关系脉络关系、城市公交问题等此类多交叉路口交通灯的数学模型中计算机处理的对象间一般存在着多对多的数据关系它叫图状数据结构。通过图示表示出来是类似于“网”状所以又叫网状数据结构此类关系结构是非线性的。3.数据结构的定义数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间关系的操作等的学科。二基本概念和术语1.数据数据是对客观事物的符号总称了解符号学是计算机中所有能输入到计算机中并被计算机程序处理的符号关系的总称。数据元素数据元素是数据的基本单位在计算机中通常考虑做一个整体进行处理。数据项包含于数据元素。数据项数据项是数据最小的不可分割单位数据对象性质相同的数据元素的集合是数据的一个子集。数据结构相互之间存在一种或多种特定关系的数据元素的集合。数据结构包含三方面数据的逻辑结构、数据的存储结构和数据的运算。2.数据的逻辑结构定义数据的逻辑结构即数据元素之间的逻辑关系独立于计算机。线性结构一对一唯一直接前驱且唯一直接后继或不存在树形结构一对多唯一直接前驱或不存在且不唯一直接后继图形结构网状结构多对多不唯一直接前驱且不唯一直接后继辅助理解已理解的跳过我们可以从生活中的一些物与物之间的逻辑关系更好地理解上面的数据逻辑结构。线性结构比如火车车厢的关系、或者一群小孩子拉着手围成圈做游戏每一个个体都只有两只手去拉别人在离散数学图论中可以将它们看作每个节点最多有且只能有一个入度和一个出度树形结构比如我们中学历史课本上的附庸关系、工作中的严格上下级关系等每个人只有一个直系长官每个长官下面可以有多个下属每个节点能有一个入度和多个出度网状结构比如开party所有人随机和别人谈话节点的入初度不严格规定每个节点可以有多个入度和多个出度。3.数据的存储结构顺序存储方法该方法就是将逻辑上相邻的点存储在物理上也表示相邻节点间的相邻关系由存储上的相邻关系体现。一般用数组实现。链接存储方法该方法不要求逻辑上相邻的点存储在物理上也相邻节点间的相邻关系由附加的指针字段表示的得到的存储表示成为链式存储结构。一般借用指针实现。索引存储方法该方法通常是在存储节点信息的基础上还建立附加啊的索引表。索引表中的每一项称作索引项索引项的一般关键形式是关键字地址。关键字唯一标识节点地址做指向节点的指针。散列存储方法该方法的基本思想是根据关键字直接计算出节点的存储地址。4.数据的运算数据的运算是在数据的逻辑结构定义的操作算法如检索、插入、删除、更新和排序等。5.数据的类型原子类型其值不可再分的数据类型类比数据项记忆结构类型其值可再分的数据类型类比数据元素记忆抽象数据类型抽象数据组织和与之相关的操作。6.数据的操作插入在数据结构的指定位置上增添新的数据元素删除删除数据结构中某位置的数据元素更新改变某位置上数据元素的值在概念上等价于删除和原位插入操作查找在数据结构中查找某个满足特定要求的数据元素的位置或值排序在线性结构中重新安排数据元素之间的逻辑顺序关系使之按值由小到大或相反次序排列。更希望能在浏览的过程中读者自己也能回忆不停思考一个问题“我能用几种算法完成以上操作还有没有更优解“博主在写代码的时候只要ddl允许会一直不停地去完善自己的算法和代码怎样会更有序整洁些、怎样命名和注释别人看我的代码时会有一种赏心悦目的感觉、怎样优化下去耗时耗空间最小、怎样添加一些新奇有趣的小功能…心无旁骛地沉在里面不要去纠结一些浅薄浮躁的声音。三算法和算法分析1.算法算法算法是对某一问题求解步骤的描述它是有限序列每一条指令具有操作层面上的明确性。特点1有穷性2确定型3可行性4输入性0或多个输入5输出性0或多个输出。算法设计的要求1正确性2可读性3健壮性4效率与低存储量要求2.算法效率的度量时间复杂度一个语句的频度是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记做 t(n)它是该算法求解问题规模n的函数。当问题无限大时t(n)的数量级称为渐近时间复杂度简称为时间复杂度记作 t(n)o(f(n)).空间复杂度算法的空间复杂度s(n)定义为该算法耗费存储空间它是问题规模为n的函数。渐进空间复杂度也常常称为空间复杂度记作s(n)o(f(n)).二、重难点重点数据的逻辑结构、数据的存储结构、数据的运算三方面的概念及关系难点分析算法的时间复杂度三、典例例1:设有数据结构line (D,R),其中D{01,02,03,04,05,06,07,08,09,10},R{r},r{05,01,01,03,03,08,08,02,02,07,07,04,04,06,06,09,09,10}解答线性原因定义一一对应关系选择此题的原因熟悉一下数据结构的表示方法学会用图形解决问题。其余此类体型属于赘述不予添加有兴趣的道友自己看教材找题目。例2:设n为整数指出下列各算法的时间复杂度。1:void prime(int n){ int i 2; while((n%i)!0 i*0.1sqrt(n)) i; if(i*1.0sqrt(n)) printf(%d是一个素数\n,n); else printf(%d不是一个素数\n,n); }2:void sum1(int n){ int p1,sum0,i; for(i1;in;i) { p*1; sump; } return sum; }3:void sum2(ihtn){ int i ,j,sum0; for(i1;in;i) { p1; for(j1;jn;j) P*j; sump; } return sum; }分析1算法的时间复杂度由嵌套最深层的语句执行次数决定。prime算法的嵌套最深语句是“i”它的执行次数由条件(n%i)!0 i0.1sqrt(n)决定所以看出执行次数小于sqrt(n),所以prime算法的时间复杂度是o(n1/2).2同上嵌套最深语句是“p1;sump;,执行n次所以算法的时间复杂度是o(n).3同理嵌套最深语句是”p*j,外层每循环一次内层语句执行n次外层一共循环n次所以sum2的算法时间复杂度为o(n2).决定时间复杂度的主要是循环要分析时间复杂度应从循环入手。 步入正轨以上明天见

相关新闻

Markdown编辑器使用说明

Markdown编辑器使用说明

欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…

2026/7/29 21:15:03阅读更多 →
Diablo Edit2:暗黑2存档编辑的终极解决方案,3步掌握角色自定义艺术

Diablo Edit2:暗黑2存档编辑的终极解决方案,3步掌握角色自定义艺术

Diablo Edit2:暗黑2存档编辑的终极解决方案,3步掌握角色自定义艺术 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾在暗黑破坏神2中花费数周时间刷装备却一无所获&…

2026/7/28 18:18:06阅读更多 →
AI工具不会用=被淘汰,2024职场人必备的8项AI生产力技能,今天学会明天见效

AI工具不会用=被淘汰,2024职场人必备的8项AI生产力技能,今天学会明天见效

更多请点击: https://codechina.net 第一章:AI对职场的影响 人工智能正以前所未有的深度和广度重塑全球职场生态。从自动化重复性任务到辅助复杂决策,AI不仅改变了岗位结构,也重新定义了人机协作的边界。企业正在加速部署智能工具…

2026/7/28 18:18:06阅读更多 →
AG Kit文档生成案例:自动创建专业文档的实例

AG Kit文档生成案例:自动创建专业文档的实例

AG Kit文档生成案例:自动创建专业文档的实例 【免费下载链接】ag-kit 项目地址: https://gitcode.com/GitHub_Trending/an/ag-kit AG Kit是一款模块化AI代理工具包(Modular AI Agent Toolkit),能够帮助开发者快速构建和部…

2026/7/29 21:13:46阅读更多 →
Multicorn性能优化:提升PostgreSQL外部数据查询速度的6个方法

Multicorn性能优化:提升PostgreSQL外部数据查询速度的6个方法

Multicorn性能优化:提升PostgreSQL外部数据查询速度的6个方法 【免费下载链接】Multicorn Data Access Library 项目地址: https://gitcode.com/gh_mirrors/mu/Multicorn Multicorn作为PostgreSQL的外部数据包装器(Foreign Data Wrapper&#xff…

2026/7/29 21:13:46阅读更多 →
AI Agent 开发实战(六):用 Spring AI 搭建你的第一个 Agent

AI Agent 开发实战(六):用 Spring AI 搭建你的第一个 Agent

AI Agent 开发实战(六):用 Spring AI 搭建你的第一个 Agent 这是「AI Agent 开发实战」系列的第 6 篇。前 5 篇我们聊了概念、LLM、记忆、工具和框架横评,今天终于要动手了——用 Spring AI 从零搭建一个能调用工具的 Agent&#…

2026/7/29 21:13:46阅读更多 →
Tanel Poder的TPT-Oracle高级技巧:DBA必备的性能调优秘籍

Tanel Poder的TPT-Oracle高级技巧:DBA必备的性能调优秘籍

Tanel Poder的TPT-Oracle高级技巧:DBA必备的性能调优秘籍 【免费下载链接】tpt-oracle Tanel Poders Performance & Troubleshooting Tools for Oracle Databases 项目地址: https://gitcode.com/gh_mirrors/tp/tpt-oracle Tanel Poder的TPT-Oracle&…

2026/7/29 21:13:46阅读更多 →
iDRAC-Redfish-Scripting与SCP功能结合:服务器配置文件导入导出全流程

iDRAC-Redfish-Scripting与SCP功能结合:服务器配置文件导入导出全流程

iDRAC-Redfish-Scripting与SCP功能结合:服务器配置文件导入导出全流程 【免费下载链接】iDRAC-Redfish-Scripting Python and PowerShell scripting for Dell EMC PowerEdge iDRAC REST API with DMTF Redfish 项目地址: https://gitcode.com/gh_mirrors/id/iDRAC…

2026/7/29 21:13:46阅读更多 →
【单片机课程设计/毕业设计】基于单片机的光照强度采集与台灯亮度调节系统 基于光敏传感的多档位智能台灯控制程序设计(011901)

【单片机课程设计/毕业设计】基于单片机的光照强度采集与台灯亮度调节系统 基于光敏传感的多档位智能台灯控制程序设计(011901)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/29 21:11:45阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“! 在构建复杂的 Agent 系统时,我们经常会遇到这样的场景:Agent 正在执行一个多步骤的任务,比如“下单购买商品”,但执行到一半时,我们…

2026/7/29 0:01:46阅读更多 →
自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…

2026/7/29 0:01:46阅读更多 →
【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:01:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/29 4:31:51阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →