数据结构笔记(一)绪论

😀前言

本人是根据bi站王卓老师视频学习并且做了相关笔记希望可以帮助到大家

🏠个人主页:尘觉主页

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉

在csdn获奖荣誉: 🏆csdn城市之星2名

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🥰阿里云专家博主

⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 😉亚马逊DyamoDB结营

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰

如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

文章目录

数据结构绪论

前言

​ 凭借一句话获得图灵奖的Pascal语言之父------Nicklaus Wirth,让他获得图灵奖的这句话就是他提出的著名公式

程序 = 数据结构 + 算法 程序=数据结构+算法 程序=数据结构+算法

​ 这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的"E=MC^2 一个公式展示出了程序的本质

算法其实就是用于解决某一类问题的公式与思想。(给出问题的数学模型)而数据结构就是数据的组织、管理和存储格式,其使用目的是为了高效的访问和修改数据。至于程序就是计算机处理问题的一系列指令。

程序设计的实质是对确定的问题选择一种好的数据结构,并设计一种好的算法。

  • 数据结构是计算机软件相关专业的专业基础课

  • 在 教学计划中的地位 :承上启下、核心部分

  • 数据结构是介于数学、计算机硬件和计算机软件之间的一门核心课程

  • 类似于武术中的基本功,练武不练功,到头一场空
  • 考研必考专业课4门专业课共150分【《数据结构与算法》占45分(更有很多学校只考数据结构与算法)】
  • 找工作面试,主要考核的内容

数据结构研究的内容

起初计算机被人们视作数值计算的工具

通常用计算精机解决一个问题的步骤:

  • 具体问题抽象成数学模型;
    分析问题;
    提取操作对象;
    找出操作对象之间的关系;
    用数学语言描述==>数据结构;【建立相应方程】<一般建立方程容易数据元素之间的关系简单但运算量大,人们就利用计算机来快速的完成复杂的计算>
  • 设计算法;
  • 编程调试运行

随着计算机应用领域的扩展,计算机被越来越多地用于非数值计算,比如信息的处理

案例

列一

来了一位新同学把他的信息加入到系统中;有同学转学或出国了要把他的信息删除道;想查看某位同学的信息;修改某位同学改名字了在系统中也应相应的修改

  1. 操作对象每位学生的信息(姓名、学号、性别、籍贯、专业)
  2. 操作算法:查询、插入、修改、删除等
  3. 操作对象之间的关系线,性关系数据结构线性数据结构线性表。
列二

计算机之所以能和人对弈是因为已经将对弈的策略在计算机中存储好。由千对弈的过程是在一定规则下随机进行的,所以,为使计算机能灵活对弈,就必须把对弈过程中所有可能发生的清况及相应的对策都加以考虑。

  1. 操作对象:各种棋盘格局
  2. 计算机的算法:根据当前的格局,从提供的派生格局中选择一种。也就是下一步棋,则构成一个新的棋盘格局。
  3. 操作对象之间的关系:非线性关系(树)
例子2.2

磁盘根目录下有很多子目录及文件,每个子目录里又可以包含多个子目录及文件但每一个子目录只有一个父目录

例3

最短路径问题。从城市A到城市B有多条线路,但每条线路的交通费不同,那么,如何选择一条线路,使得从城市A到城市B的交通费用最少呢?

综上所述

这些问题的共性是:都无法用数学的公式或方程来描述,是一些"非数值计算"的程序设计问题,描述非数值计算问题的数学模型不是数学方程,而是诸如表,树和图之类的具有逻辑关系的数据

数据结构是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科

这门课程好学吗?

比较难学。抽象概念性强、需要一些数学逻辑思维不然后面的学习就吃力一些了。

这门课怎么才能学好?

计中计算机的操作对象以及它们之间的关系和操作的学科

这门课程好学吗?

比较难学。抽象概念性强、需要一些数学逻辑思维不然后面的学习就吃力一些了。

这门课怎么才能学好?

​ 不要中途放弃,要迎难而上;做好笔记("最淡的墨水也胜过最强的记忆"即使你不去复习你的笔记也没有什么,其实写字的过程中大脑也在学习,写字放慢了你的速度,从而让你更好的去消化学习的内容)主动学习;必须真真切切的可以写出代码去实现算法并且可以详细的说出每一步是做什么的;多上机敲代码。如果学的不是C语言也没有关系这可以让你了解你掌握的编程语言与C语言的差异。甚至将课本给出的代码用你掌握的语言去改造本身也是很好的学习方法。

😄总结

加油一切都会学好的

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁

希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻

如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

相关推荐
AlexMercer10124 分钟前
【C++】二、数据类型 (同C)
c语言·开发语言·数据结构·c++·笔记·算法
微刻时光44 分钟前
Redis集群知识及实战
数据库·redis·笔记·学习·程序人生·缓存
chnyi6_ya1 小时前
一些写leetcode的笔记
笔记·leetcode·c#
青椒大仙KI112 小时前
24/9/19 算法笔记 kaggle BankChurn数据分类
笔记·算法·分类
^^为欢几何^^2 小时前
lodash中_.difference如何过滤数组
javascript·数据结构·算法
liangbm33 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
GoppViper3 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
ahauedu3 小时前
案例分析-Stream List 中取出值最大的前 5 个和最小的 5 个值
数据结构·list
Charles Ray4 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码4 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记