问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

学数据结构有什么用?

发布网友 发布时间:2022-04-23 13:18

我来回答

4个回答

懂视网 时间:2022-05-11 07:00

1.学习数据结构有什么用?
2.学习算法有必要吗?

回复内容:

个人认为数据结构是编程最重要的基本功没有之一!

学了顺序表和链表,你就知道,在查询操作更多的程序中,你应该用顺序表;而修改操作更多的程序中,你要使用链表;而单向链表不方便怎么办,每次都从头到尾好麻烦啊,怎么办?你这时就会想到双向链表or循环链表。

学了栈之后,你就知道,很多涉及后入先出的问题,例如函数递归就是个栈模型、Android的屏幕跳转就用到栈,很多类似的东西,你就会第一时间想到:我会用这东西来去写算法实现这个功能。

学了队列之后,你就知道,对于先入先出要排队的问题,你就要用到队列,例如多个网络下载任务,我该怎么去调度它们去获得网络资源呢?再例如操作系统的进程(or线程)调度,我该怎么去分配资源(像CPU)给多个任务呢?肯定不能全部一起拥有的,资源只有一个,那就要排队!那么怎么排队呢?用普通的队列?但是对于那些优先级高的线程怎么办?那也太共产主义了吧,这时,你就会想到了优先队列,优先队列怎么实现?用堆,然后你就有疑问了,堆是啥玩意?自己查吧,敲累了。

总之好好学数据结构就对了。我觉得数据结构就相当于:我塞牙了,那么就要用到牙签这“数据结构”,当然你用指甲也行,只不过“性能”没那么好;我要拧螺母,肯定用扳手这个“数据结构”,当然你用钳子也行,只不过也没那么好用。学习数据结构,就是为了了解以后在IT行业里搬砖需要用到什么工具,这些工具有什么利弊,应用于什么场景。以后用的过程中,你会发现这些基础的“工具”也存在着一些缺陷,你不满足于此工具,此时,你就开始自己在这些数据结构的基础上加以改造,这就叫做自定义数据结构。而且,你以后还会造出很多其他应用于实际场景的数据结构。。你用这些数据结构去造轮子,不知不觉,你成了又一个轮子哥。 简单的说,你去学Python了,到工作中,一个负载稍高一点的Python网站,你不懂数据结构,你都不知道 List 和 Dictionary 的性能曲线大概会怎么变,需要深度优化的时候怎么下手。

你才大一,不要被那些浮躁的言论骗了。好好读书,基础打好。 数据结构和算法是一部发展史,发明他们就是为了“做出东西”,学习他们是为了不重复发明轮子,当你在“做东西”时遇到运行效率上的瓶颈,就可以参考这些前人的方案,当学完后,就能评估出一个“东西”以现在的技术是否可能做出来
有人罗列xx结构、xx算法能干嘛干嘛全是屁话,书上都有。说白了这东西就是前人的公式,学习就是为了套公式解决问题的,解决世界难题就要发明新公式(算法/结构)

能否做出来包括两点:效率是否能承受,功能是否能实现
一些语言包装了大量基础算法,用于快速实现功能,一般效率也是可以接受的
当效率不能接受,就需要调整算法和结构,c甚至汇编
题主应该是想做看得见摸得着的东西,所以应该选择抽象级别高的语言。先定这“东西”干嘛用的,拆分所有要实现的细节,逐个完成,当它运作起来并快如预期,就做完了
是否有必要深入学,和你在实现过程中的效率需求有关 TokuMX? | TokuDB? 就是“数据结构学得好”的致富榜样。 就我来说吧…我觉得大一这一年知道的最有用的一件事是:

想做自己的东西,想做自己的应用,就不要想着它眼前的用途。

就那数据结构来说,你开始可能认为这个东西看了半天写不了任何应用,没什么实际价值。可事实上,它的价值远超你任何一门程序设计语言的语法。

你可以精通10门语言,了解各种设计模式,各种框架,但是少了数据结构,你就永远走不远,像一个握有几百种民房设计图纸的建筑设计师一样,你也不可能能设计的出迪拜塔。

很多人以为本科生做两个小项目,接几个外包,做几个App,搞搞自己的博客就很厉害,其实,如果你就被这点东西迷惑,那么,你的水平也就到这里了。

工程师不是随便动动手就能当的,本科不是培训学校。 你查东西只会遍历么 学好数据结构,可以让程序跑得快一点呗。

最近和Telerik斗争良久,各种优化,各种修改它的代码,把它内部的实现开个口子,好接管其数据结构,然后提供自己的实现,那性能都蹭蹭蹭地提高。

在此还得感谢Telerik提供的劣质代码,可以有充分的空间发挥自身价值,博取老板欢心。 我认为数据结构是程序设计中的第二层。
第一层是抽象,把你想要描述的东西用程序语言抽象出来。比如说一个人,你应该用怎样的类去储存,这是第一层抽象。
数据结构的作用是,如何将数据组织起来。
为什么要将数据组织起来?因为计算机无法理解你的抽象,它不知道这个人的爸爸是他,兄弟是他,得由你程序猿来告诉它。为什么不知道,因为计算机中只有0和1,数据都是0和1,这个节点和那个节点的关系,二者如何互相得到,这是程序员要做的,数据结构教的。因为计算机不知道怎么做。
算法是什么,算法就是如何在节点与节点之间,状态与状态之间相互转移。 首先回答,学习数据结构非常有用,它是计算机从业人员一项重要的基本功。
每年计算机系毕业生那么多,如何区分精英和普通码农的一个很重要的衡量指标就是专业基本功够不够扎实。

下面对数据结构在专业上的作用,我说一下我的看法。
在某些特定的情况下,语言提供的基本数据结构(例如int,char,string …)不能满足你的使用需求,这个时候你就需要更高级的数据结构来应付这些情况。就像武功招式,你用惯了基础招式,就需要学习杀伤力更强用途更广的招式。
相当于基础武功之上的二级招式。

当你了解了这些招式,像链表,堆栈,二叉树,图等等,你就可以用更深厚的底气来面对计算机的世界,你可以知道网络里面节点的互相连接就是图的具体实例,你可以用图的最短路径算法求出实际网络上一个节点到另一个节点的最短路径,你可以知道操作系统里面海量的文件可以由B+/B-树来组织,你可以知道进程管理里面可以用优先队列(堆)调度带优先级的进程,你可以知道函数的调用就是对系统栈的操作。
简单来说,你可以加深对计算机世界的理解。

另一方面,某些数据结构在特定的环境下可以提高使用者的效率。
例如用二叉树来查找,树形结构在查找中很大的一个好处就是减免了很多不必要的查找。当你按左小右大(左半边的所有数都小于中间的数,右半边所有数都大于中间的数)的方式组织好一个数列的二叉树,你可以每次只和中间的数比较,不断缩小范围就可以找到你要找的数。如此显然比顺序查找要快的多。

当你学完数据结构,你也会顺带着对算法有了一些了解,因为数据结构和算法往往是不分家的,算法常常需要特定的数据结构支持。
例如图论的算法几乎都要图的数据结构支持。

如果说数据结构是二级招式,还是基础内功的范围,是辅助性的,那么算法就是赤裸裸的大杀器,它可以用来纯粹的提高程序的效率(这里是狭义的算法)。
当你匹配字符串的时候,把算法换成kmp,时间复杂度立刻从O(n^2)爆增到线性的O(n),那酸爽,和操作着笨重的顺序匹配,不可同日而语。

说了这么多,你也大概明白了数据结构和算法的重要性,所以我的建议是,先打好基础,一步一步慢慢来,打好下层建筑,才能垒起万丈高楼,君不见豆腐渣工程是多么害人害己。 数据结构可以帮助你在分析业务时,快速定义对象和实现算法!
别人业务给你讲清楚,你就知道能不能实现了,编码是另外的事情了!

热心网友 时间:2022-05-11 04:08

在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。

许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。

选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。

扩展资料:

数据结构分类:

1、集合结构。该结构的数据元素间的关系是“属于同一个集合”。

2、线性结构。该结构的数据元素之间存在着一对一的关系。

3、树型结构。该结构的数据元素之间存在着一对多的关系。

4、图形结构。该结构的数据元素之间存在着多对多的关系,也称网状结构。一个数据结构有两个要素。一个是数据元素的集合,另一个是关系的集合。在形式上,数据结构通常可以采用一个二元组来表示。

参考资料来源:百度百科-数据结构

热心网友 时间:2022-05-11 05:26

没用没用没用没用没用没用没用没用

热心网友 时间:2022-05-11 07:01

在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件:
能够熟练地选择和设计各种数据结构和算法。
至少要能够熟练地掌握一门程序设计语言。
熟知所涉及的相关应用领域的知识。
其中,后两个条件比较容易实现,而第一个条件则需要花相当的时间和精力才能够达到,它是区分一个程序设计人员水平高低的一个重要标志,数据结构贯穿程序设 计的始终,缺乏数据结构和算法的深厚功底,很难设计出高水平的具有专业水准的应用程序。曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,也说 明了数据结构和算法的重要性。

《数据结构》是计算机科学与工程的基础研究之一,掌握该领域的知识对于我们进一步进行高效率的计算机程序开发非常重要。无论在中国还是在美国,《数据结 构》一直是大学的计算机专业重要的专业基础课。例如,在著名的美国的加州大学伯克利分校(著名的BSD Unix的发源地,很多Unix操作系统由它派生而来或带有它的痕迹——例如FreeBSD、Sun公司的Solaris、IBM的AIX),就用一个学 期开设《数据结构和算法》课程(在这之前,用一个学期开设《C++程序设计》课程)。

作为计算机专业的学生,在学完C/C++以后,关键的问题是怎样熟练地应用和巩固。其实《数据结构》并不难。 在学习《数据结构》之前,要求学生有C/C++基础。可以这样说,C/C++是其他程序设计语言的基础。掌握了C/C++,学习其他语言就会易如反掌。例 如,微软的MFC类库基于C++;ATL基于C++中的模板类;Java语言基于C++思想,其编程风格与C++差别很小;C++ Builder又是基于C++;Delphi中的有关对象的概念与C++中的对象几乎完全一致。C++相比其他语言具有与计算机硬件集合紧密、代码效率 高,这是Java语言和其他高级语言所无法比拟的。这样,C/C++对于学习计算机系统结构有很大的好处。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
做青红椒炒毛肚有哪些好吃的诀窍? 如何自制好吃的香辣毛肚? 穿越火线警告码SX(2,509,0)如何解决 CF sx警告码(2,770,0)什么原因 ...要求重新启动电脑 警告码是2 xxxx 0 有时重启4 5次才能玩 win7系统... 穿越火线 sx 警告码 2,994,0 怎么解决 CF出现非法模块SX警告码(2,990,0) 我为什么上CF体验服没开G有非法模块???怎么办啊 警告码(2,502,0) 穿越火线进游戏后 2分钟左右 就出来个 SX 警告码2,990,0 看到刘老师那慈祥的面庞,我感慨万分,我想到了这样几个赞美刘老师的成语... 数据结构的起源作用和意义 “数据结构的设计”是什么意思 数据结构在电气工程及其自动化专业中的运用 交换机分流网线 能同时用几台电脑? 宿舍拉网线怎么分流。 网络分流器分出来的网线还能不能连接无线路由器 电脑网线怎么用分流器分?? 分流后的网线,可以接无线路由器吗? 一根网线能二次分流吗? 同样是分流的网线,为什么我电脑的网速却慢一点? 如何将固定IP的网线分流? 网线分流 路由器分流出来的网线上网要几组线? 公司有条网线是连接监控的,如何让这根网线分流成两份,一边连接监控不变,一边连接电脑上网? 请问家里的网线如何分流? 网线入分流器之后网速会有影响? 有什么办法可以把一根网线分流,一个用电脑上网,另一个按路由器? 分流出来的网线连接路由器后要怎么设置? 电脑网线怎么分流? 网线如何分流! 数据结构属于软件工程专业吗? 数据结构课程设计的内容简介 文件数据结构设计? 请问计算机考研软件工程和数据结构哪个简单 学数据结构有什么用 数据结构是干什么的? 数据结构对软件设计有什么作用? 数据结构设计思路 C语言课设数据结构设计及用法说明怎么写 数据结构课程设计-文章编辑(附录中有全部代码) 如何才能选择一个好的数据结构进行程序设计 怎么申诉找回QQ原始密码? 北京都有哪些研究所? 北京研究所的研究生比大学研究生好考吗 北京中科院研究所怎么样 北京有哪几个研究所? 北京研究生落户政策 北京那些研究所招收经济类研究生 工行的软件研发中心 北京研究部能解决北京户口吗 北京可以考研的大学有哪些?