IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构绪论 -> 正文阅读

[数据结构与算法]数据结构绪论


前言

笔者是来自一所普通二本大学的大学生,如果在这一板块的文章中有什么错误,希望各位可以不吝赐教。或者有什么好的建议也希望各位可以私信我或者留言,当然了,希望各位轻踩,毕竟本人也是一个小菜鸡,不算什么大佬,可能很多东西都属于在大佬面前班门弄斧,也可能有很多啼笑皆非的错误,希望各位读者可以批评指出,作者一定认真采纳,各位好的意见。也快毕业了,总想在大学留下点有意义的纪念。因为笔者的实力原本不算很高,所以很多时候可能断更去山上修炼什么的,希望各位多谅解。hhhh


一、创作初衷

在大学不知不觉快度过三个春秋了,因为学长的影响,参加过各种竞赛,总想着三年的收获除了奖状和美好的回忆以外,留下些别的有实际意义的回忆,学长说那就去写博客吧,看看自己可以回忆起多少大学所学过的知识,顺便巩固一下考研的相关知识。我想了想,先写数据结构相关的博客内容试试吧,毕竟三年的学习我基本上都是偏向于软件知识,对于嵌入式等方向的硬件知识,因为考研没有考虑相关方向,同时由于自己的原因,所以先不涉及了吧。等以后我有幸可以更深入再和各位大佬交流吧、

二、数据结构是什么

对于数据结构是什么?

数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。–百度百科

在计算机科学中,数据结构(英語:data structure)是计算机中存储、组织数据的方式。
数据结构意味着介面或封装:一个数据结构可被视为两个函数之间的介面,或者是由数据类型联合组成的存储内容的访问方法封装。
大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。举例而言,可為空的引用(nullable reference)是引用与可辨识联合的结合体,而最简单的链式结构链表则是由记录与可空引用构成。
数据结构可透过程式语言所提供的数据类型、引用及其他操作加以实现。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,支援各種程式執行。
不同种类的数据结构适合不同种类的应用,部分資料結構甚至是為了解決特定問題而設計出來的。例如B树即為加快樹狀結構存取速度而設計的資料結構,常被應用在資料庫和檔案系統上。
正確的数据结构選擇可以提高演算法的效率(請參考演算法效率)。在電腦程式设计的過程中,选择适当的数据结构是一項重要工作。许多大型系统的編寫经验顯示,程式設計的困难程度与最终成果的质量与表现,取决于是否选择了最適合的数据结构。 --维基百科

以上分别是来自百度百科和维基百科的定义,数据结构到底是什么?相信大家自己心里也有答案。相信各位都知道一句话程序=数据结构+算法。在笔者学c语言的时候老师就说过这么一句话,我当时一直不明白是什么意思,因为当时我当时的程序对于数据的吞吐量很低,或者说连程序都算不上,只能说是一个个小实验。只要明白要干什么,能跑就蛮开心的,根本不用考虑吞吐量问题,时间复杂度问题,空间复杂度问题。但是随着学习的进行,我慢慢明白了,自己写的一些程序不能只要能跑就好,还要跑起来省时间,运算的时候节省空间。(为什么要节省空间?反正电脑内存条还蛮大的,我写的东西一般不会有抄个我内存大小,这是我大一的真实想法;后面我明白了,我们现在写的一些小东西仅仅是放在本地pc上运行,一旦数据吞吐量上去,那么内存很容易就让跑满了,一旦满了,那么我就需要去加内存,那么如果可以形成这么一个循环,首先不说内存加到多少是有上限的,就单说,在内存中不断读取数据,存放数据也是对cpu性能的一个很大浪费,况且加内存条是需要的金钱hhh)于是就诞生了数据结构,让数据按照一定的方式排列节省空间or节省时间。(其实说实话笔者刚学数据结构的时候觉得这玩意一点也不节省空间,毕竟在我刚学链表的时候我就感觉使用存地址是个浪费内存的过程,我不如按顺序排还不用耗费存地址的空间。后面我明白了,这样存可能会浪费一些内存,但是在内存中存在很多碎片化的内存,很多数据都是不连续的,而是一段一段的,就需要存个地址找,将碎片化的空间链接起来更省一些内存)其实对于好的数据结构来说,要不以空间换时间,要不以时间换空间,两者很难兼得、其实这可以举一个不恰当的例子,关于某些软件下载资源,你可以选择花钱(相当于增加空间)而减少下载时间,也可以慢慢等。


总结

以上是关于数据结构绪论,欢迎各位讨论自己对于数据结构的定义或者指出笔者错误的地方。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:44:21  更:2022-01-17 11:46:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 19:41:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码