永发信息网

数据结构学什么

答案:1  悬赏:40  手机版
解决时间 2021-02-16 07:03
  • 提问者网友:伴风望海
  • 2021-02-15 20:44
数据结构学什么
最佳答案
  • 五星知识达人网友:梦中风几里
  • 2021-02-15 20:59
问题一:数据结构主要学什么内容 一、线性表
(一)线性表的定义和基本操作
(二) 线性表的实现
1. 顺序存储结构
2. 链式存储结构
3. 线性表的应用
二、栈、队列和数组
(一)栈和队列的基本概念
(二)栈和队列的顺序存储结构
(三)栈和队列的链式存储结构
(四)栈和队列的应用
(五)特殊矩阵的压缩存储
三、树与二叉树
(一)树的概念
(二)二叉树
1. 二叉树的定义及其主要特征
2. 二叉树的顺序存储结构和链式存储结构
3. 二叉树的遍历
4. 线索二叉树的基本概念和构造
5. 二叉排序树
6. 平衡二叉树
(三)树、森林
1. 书的存储结构
2. 森林与二叉树的转换
3. 树和森林的遍历
(四)树的应用
1. 等价类问题
2. 哈夫曼(Huffman)树和哈夫曼编码
四、 图
(一) 图的概念
(二) 图的存储及基本操作
1. 邻接矩阵法
2. 邻接表法
(三) 图的遍历
1. 深度优先搜索
2. 广度优先搜索
(四) 图的基本应用及其复杂度分析
1. 最小(代价)生成树
2. 最短路径
3. 拓扑排序
4. 关键路径
五、 查找
(一) 查找的基本概念
(二) 顺序查找法
(三) 折半查找法
(四) B-树
(五) 散列(Hash)表及其查找
(六) 查找算法的分析及应用
六、 内部排序
(一) 排序的基本概念
(二) 插入排序
1. 直接插入排序
2. 折半插入排序
(三) 气泡排序(bubble sort)
(四) 简单选择排序
(五) 希尔排序(shell sort)
(六) 快速排序
(七) 堆排序
(八) 二路归并排序(merge sort)
(九) 基数排序
(十) 各种内部排序算法的比较
(十一) 内部排序算法的应用问题二:数据结构到底怎么学比较好啊? 写数据结构代码编程了学习C语言,是大多数初学者的经验,其实有办法可以避免的。
多想> 多看 > 多写字 > 多动键盘
养成好的编程习惯很重要。
做任何工作之前,要把自己的思路整理清楚 参考别人的相关工作经验,针对自己的需求做分析 把思路落实到纸张上 采用自顶向下的编程方式,先把你的个函数的功能,入口和出口描述清楚 每个函数内部的执行流程,都要注释好。 最后再分段逐步编码。
这样可以有效的避免大多数的错误发生。 即便出现错误,也很容易定位到问题的所在。 不知道大家是怎样看待数据结构这门课的,有多少人觉得数据结构很难呢?我知道还是有一些同学这样觉得的,有时候我跟我的朋友讲要怎样学,讲了一大堆以后,他就向我抱怨:我以前c++都没有学好,数据结构更学不好了,这哪跟哪的话啊,数据结构与c++没有什么关系,我想假如抱有这样的心态,自己就不相信自己,那是不可能学好的,然后那些觉得数据结构很难的同学,我想他们应该会很看重数据结构的吧,然后就一天到晚捧着一本数据结构,这样不会觉得很累吗?而且因为觉得很难,就容易不相信自己,学的效率也不会很好,个人认为数据结构很好学,很容易学,或许这有点妄自菲薄吧,但是因为我觉得很容易,当然就会觉得自己没问题,学得很轻松,效果也还可以。大家都是从高考走过来的,应该知道心态的重要性吧,两种不同的心态,完全就是两种不同的效果。学了这么久数据结构了,我们到底在学些什么呢?不知道大家有没有想过,那现在我们现在来归纳一下我们学习的内容吧,其实学到现在我们也就学了几种普通的数据结构,象二叉树,树,图,还有排序的问题,前面的线性表和字符串也就是一些概念,当然还有一个很重要的KMP算法,然后在每种数据结构中我们也就是学到了若干处理的算法,我想真正数起来也就是几十个算法吧。学习数据结构也就是要掌握这几十种算法,多简单。至于如何掌握每个算法呢,我想就是多看看书,重要的是能够理解。 如果真的想学好数据结构的话,最好是能够自己思考问题,不要刚想了一会就觉得做不出来,然后就去问其他人。其实张老师给我们的作业还是基于我们的水平的,我绝对相信我们自己能够独自想出算法,虽有可能会比较长时间吧,但是这样肯定会比问其他人学到更多的东西。当然我并不是说不要问同学,有时候就是脑筋转不过来,一问别人就懂了,当然问了别人不能只是我知道了这个算法,还应该去想如何思考才能得到这个算法,这样水平会提高很多。
很多计算机专业的同学对于大学2年级开设的数据结构课程很是头痛. 看见大家总在谈论数据结构重要性,可使自己学习却总也找不到合适的方法. 下面我和大家分享一下我过去一年多以来学习和应用数据结构方面一些经验. 内容都是来自作者本人的一些经历和体验,希望对于大家学习数据结构有引导作用。 1什么是数据结构 数据结构从文字上面来看,为数据和结构两部分。这样就很容易联系到数据结构的本质是一种对于数据结构花的知识。补充一个知识点,数据结构本质和离散数学有很密切的关系。离散数学是处理的是离散(非连续的)的数据,站在数据结构的观点上来看,也可以理解是一种非连续数据的结构。 2数据结构和程序设计语言 数据结构和程序设计语言本身没有任何联系,唯一有的关系就实用程序语言去描述数据结构。 因为数据结构是一种抽象数据,通过程序设计语言可以将在计算机中进行实现。今天大学里数据结构课程常用来描述数据结构的语言有C程序设计语言,C 程序设计语言和JAVA程序设计语言.而对于喜欢其他语言的同学完全可以自己通过学习数据结构后用自己熟悉的程序设计语言去完成程序化的描述. 我自己过去......余下全文>>问题三:数据结构学的到底是什么,和算法的关系 本人乃一个数据痴迷者,在计算机的道路上,也是一个数据结构的痴迷者,现在大学里面和同学搞开发也痴迷于数据库,我就我个人的理解给你谈一谈:首先,数据结构是一门计算机语言学的基础学科,它不属于任何一门语言,其体现的是几乎所有标准语言的算法的思想。上面的概念有一些模糊,我们现在来具体说一说,相信你门的数据结构使用的是一门具体的语言比如C/C++语言来说明,那是为了辅助的学习数据结构,而数据结构本身不属于任何语言(相信你把书上的程序敲到电脑里面是不能通过的吧,其只是描述了过程,要调试程序,还需要修改和增加一些东西)。你们的书上开始应该在讲究数据的物理存储结构/逻辑存储结构等概念,说明数据结构首先就是“数据的结构”,在内存上的存储方式,就是物理的存储结构,在程序使用人员的思想上它是逻辑的,比如:你们在C/C++中学习到链表,那么链表是什么一个概念,你们使用指针制向下一个结点的首地址,让他们串联起来,形成一个接一个的结点,就像显示生活中的火车一样。而这只是对于程序员的概念,但是在内存中存储的方式是怎样的那?对于你程序员来说这是“透明”的,其内部分配空间在那里,都是随机的,而内存中也没有一个又一根的线将他们串联起来,所以,这是一个物理与逻辑的概念,对于我们程序员只需要知道这些就可以了,而我们主要要研究的是“逻辑结构”。我可以给你一个我自己总结的一个概念:所有的算法必须基于数据结构生存。也就是说,我们对于任何算法的编写,必须依赖一个已经存在的数据结构来对它进行操作,数据结构成为算法的操作对象,这也是为什么算法和数据结构两门分类不分家的概念,算法在没有数据结构的情况下,没有任何存在的意义;而数据结构没有算法就等于是一个尸体而没有灵魂。估计这个对于算法的初学者可能有点晕,我们在具体的说一些东西吧:我们在数据结构中最简单的是什么:我个人把书籍中线性表更加细化一层(这里是为了便于理解在这样说的):单个元素,比如:int i;这个i就是一个数据结构,它是一个什么样的数据结构,就是一个类型为int的变量,我们可以对它进行加法/减法/乘法/除法/自加等等一系列操作,当然对于单个元素我们对它的数据结构和算法的研究没有什么意义,因为它本来就是原子的,某些具体运算上可能算法存在比较小的差异;而提升一个层次:就是我们的线性表(一般包含有:顺序表/链表)那么我们研究这样两种数据结构主要就是要研究它的什么东西那?一般我们主要研究他们以结构为单位(就是结点)的增加/删除/修改/检索(查询)四个操作(为什么有这样的操作,我在下面说到),我们一般把“增加/删除/修改”都把它称为更新,对于一个结点,若要进行更新一类的操作比如:删除,对于顺序表来说是使用下标访问方式,那么我们在删除了一个元素后需要将这个元素后的所有元素后的所有元素全部向前移动,这个时间是对于越长的顺序表,时间越长的,而对于链表,没有顺序的概念,其删除元素只需要将前一个结点的指针指向被删除点的下一个结点,将空间使用free()函数进行释放,还原给操作系统。当执行检索操作的时候,由于顺序表直接使用下标进行随机访问,而链表需要从头开始访问一一匹配才可以得到使用的元素,这个时间也是和链表的结点个数成正比的。所以我们每一种数据结构对于不同的算法会产生不同的效果,各自没有绝对的好,也没有绝对的不好,他们都有自己的应用价值和方式;这样我们就可以在实际的项目开发中,对于内部的算法时间和空间以及项目所能提供的硬件能力进......余下全文>>问题四:学数据结构看什么书 用C版。现在也有C++版。
ps:五年前,还用C版,新出了C++版之后,大学就开始有用C++版了。
个人觉得,用C++版挺好。主要还是理解数据结构,和其中采用的算法思想,最好自己亲手用代码都实现。有针对严蔚敏的数据结构这本教材,实现其中算法的程序代码的书,可以参考。问题五:数据结构有什么用呢 有本书籍叫《数据结构+算法=程序》可以参丁下。
程序本身就是这两者构成,什么框架都是建立在这两者之上,
现在的人大多是直接学C#,JAVA,特别是C#,一上来什么东西都给你封装,
很多细节程序员是不会知道,什么东西简单一拖OK。
不过这些语言的什么LIST啊,ARRAYLIST等等这些就是一种数据结构,
定义好这形形色色的数据你用起来不觉得更方便了吗?
我的水平比较低,目前的理解是学习数据结构主要是学习算法,算法就是提高你
解决问题的能力,还有就是组织数据的思维方式方法。
我刚完成数据结构学习的第一阶段,感觉还是挺有趣的,学到不少知识,最起码
比WINFORM的拖拖拉拉有趣多了。问题六:学数据结构有什么用 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计
算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这
是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件:
能够熟练地选择和设计各种数据结构和算法。
至少要能够熟练地掌握一门程序设计语言。
熟知所涉及的相关应用领域的知识。
其中,后两个条件比较容易实现,而第一个条件则需要花相当的时间和精力才能够达到,
它是区分一个程序设计人员水平高低的一个重要标志,数据结构贯穿程序设 计的始终,缺乏
数据结构和算法的深厚功底,很难设计出高水平的具有专业水准的应用程序。曾经有一本经
典计算机专业书籍叫做《数据结构+算法=程序》,也说 明了数据结构和算法的重要性。
《数据结构》是计算机科学与工程的基础研究之一,掌握该领域的知识对于我们进一步
进行高效率的计算机程序开发非常重要。无论在中国还是在美国,《数据结 构》一直是大学
的计算机专业重要的专业基础课。例如,在著名的美国的加州大学伯克利分校(著名的 BSD
Unix 的发源地,很多Unix 操作系统由它派生而来或带有它的痕迹——例如FreeBSD、Sun 公
司的Solaris、IBM 的AIX),就用一个学 期开设《数据结构和算法》课程(在这之前,用一
个学期开设《C++程序设计》课程)。
实《数据结构》并不难。 在学习《数据结构》之前,要求学生有 C/C++基础。可以这样说,
C/C++是其他程序设计语言的基础。掌握了 C/C++,学习其他语言就会易如反掌。例 如,微
软的MFC 类库基于C++;ATL 基于C++中的模板类;Java 语言基于C++思想,其编程风格与C++
差别很小;C++ Builder 又是基于C++;Delphi 中的有关对象的概念与C++中的对象几乎完全
一致。C++相比其他语言具有与计算机硬件集合紧密、代码效率 高,这是Java 语言和其他高
级语言所无法比拟的。这样,C/C++对于学习计算机系统结构有很大的好处。
数据结构是对非数值型数据的处理
学了以后你就会对各种类型的数据的处理有了一个大概的掌握
比如我们的千千静软件它其实就是处理线性表数据问题七:学习数据结构前应该学什么? 最好就是要学会C的函数,结构体,还有一定的就是指尖,C最强大的就是他的指尖。以后都是以这些为基础。离散数学就没这个必要了。问题八:学习数据结构需要什么基础吗 知道你为什么一开始看,看得不是特别懂吗?
是因为你没有用计算机的思想去看。数据结构本身就是在讲计算机存储数据的一种方法,一种能力。你要想,一个字节8位,两个字节一个字。内存都以这种单位来计算的。
比如说数组,它是线性的数据结构吧?是一组连续的数据的集合,这种数据结构你怎么理解,举个例子:
int Array[] = {1,2,3,4,5};
这是一个数组吧?这5个数在内存中就是以int大小的单位顺序存储的。
有了这种想法,你就要会一种开发语言了,汇编也好,C也好,C++也好,Java也好。这样你能更好的理解,实现这些结构。问题九:学习数据结构到底有什么用 反正我觉得不好学,而且很难,如果你考研,或者以后往计算机方向发展,建议你还是要好好学的。问题十:数据结构应该什么时候学 数据结构和算法一样,不受语言限制的,一般对什么语言熟悉,就学习什么语言版本的数据结构。常见的有C,c++,java吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯