和小白一起学数据结构六之基本概念总结
一起学数据结构之绪论基础概念五天前甚至对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/10/28 5:58:36 阅读更多 →
【干货】前端进阶应该知道的这些调试方法

【干货】前端进阶应该知道的这些调试方法

前言 平时工作量大并且很忙,也就意味着难免会在写代码的时候一不小心写出BUG。如果测试一旦没有测到,代码上到现网往往就是事故,很多同学在这种时候手忙脚乱,不知道怎么调试解决。本文就这点主要讲一下平时前端调试用的那些方法&a…

2026/10/24 17:46:53 阅读更多 →
PAT-1041(乙级)

PAT-1041(乙级)

每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试…

2026/11/2 23:17:20 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/4 1:35:24 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/3 10:57:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/4 6:23:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/3 10:47:27 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/3 10:57:33 阅读更多 →

日新闻

周新闻

月新闻