数据结构笔记(一)绪论

😀前言

本人是根据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连支持一下,创造不易您们的支持是我的动力🤞

相关推荐
美式小田43 分钟前
单片机学习笔记 9. 8×8LED点阵屏
笔记·单片机·嵌入式硬件·学习
熬夜学编程的小王1 小时前
【C++篇】深度解析 C++ List 容器:底层设计与实现揭秘
开发语言·数据结构·c++·stl·list
猫爪笔记1 小时前
前端:HTML (学习笔记)【2】
前端·笔记·学习·html
阿史大杯茶1 小时前
AtCoder Beginner Contest 381(ABCDEF 题)视频讲解
数据结构·c++·算法
_不会dp不改名_1 小时前
HCIA笔记3--TCP-UDP-交换机工作原理
笔记·tcp/ip·udp
Chris _data1 小时前
二叉树oj题解析
java·数据结构
-一杯为品-2 小时前
【51单片机】程序实验5&6.独立按键-矩阵按键
c语言·笔记·学习·51单片机·硬件工程
Lenyiin2 小时前
02.06、回文链表
数据结构·leetcode·链表
爪哇学长2 小时前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
爱摸鱼的孔乙己2 小时前
【数据结构】链表(leetcode)
c语言·数据结构·c++·链表·csdn