2 u010376930 u010376930 于 2014.08.01 10:29 提问

数据结构在c++编程时候的作用

最近在看基于c++的数据结构,尤其看到树,实在不太理解树这些对于c++编程有什么作用,或者说他们的联系,或者说数据结构对于编程的意义,因为不是计算机专业,所以总觉得有一种门外汉的感觉,希望大牛们能指点一二,能推荐上一两本比较好的数据结构书更好,谢谢啦!

7个回答

QQ1507527443
QQ1507527443   2014.08.03 23:24

建议还是学一下数据结构。虽然实际工作中去实现基本的数据结构与算法的不太现实,但知其然知其所以然,更能写出优质代码。
书的话选本经典的C++,JAVA实现的数据结构书就行。

u010376930
u010376930   2014.08.04 16:30

没有学过java,java实现的数据结构能看懂吗

li823412805
li823412805   2014.08.06 17:10

表示计算机专业的数据结构都没学好,门外汉还是光了解一下C和C++吧,别深入了

u010376930
u010376930 本人是自动化专业的,但是打算找软件相关的工作,快要面试了,不知道该准备什么啊
大约 3 年之前 回复
a158337
a158337   2014.08.10 20:44

我也不是计算机专业的,但是相近。我看过他们的数据结构这类的书,这类东西感觉侧重的是算法和策略。用处我能举出一些,也是书上看到的,比如计算机与计算机之间通信,如何找到另一个计算机,网络结构里面存在类似的树的模型,算法的优劣直接决定了访问速度。还有搜索引擎搜索,里面好像提到了哈希算法。像这种概念的提出都是为了优化算法,为实际应用提供指导意义的。看书+个人总结,高手勿喷。

zhb1997
zhb1997   2014.08.13 23:49

如果是搞竞赛的话可以去看刘汝佳的白书,百度一下很多的
至于树的数据结构,那太多了,堆,线段树,平衡树,树套树,动态树,树的分治等等都和树的数据结构有关
你说不懂有什么用?
首先树的定义很广,由一个或多个节点组成的有线集合,存在一个根节点,所有非根的节点一定有一个祖先,这是树;一个图中有n个点和n-1条边,这也是树,百度一下都有
树的结构用的最多的是二叉树,它可以优化一些操作。比如用数组模拟规模是n的一个数列,要支持在任意位置插入/删除一个数、询问第k个数是多少,那么插入删除最坏情况下是要做n次操作,询问只要1次。如果链表模拟的话插入、删除都是1次操作,但是询问最坏情况下是要做n次操作。这样最坏情况下都是可以用特殊数据卡你时间的。但是用平衡树就可以解决。平衡树的插入、删除、询问最坏情况下都是只要log2n的,这样就解决了时间的问题。并不是说平衡数就一定比数组、链表模拟好,所有高级数据结构的思想都是放弃一些操作的效率,来换取另一些操作效率变快。具体还是要看情况决定。

mevip
mevip   2014.08.14 12:30

选择数据结构非常重要,数据结构在一定程度上决定了设计的好坏和实现的难易程度。

chrysanthemumcao
chrysanthemumcao   2014.08.15 19:26

数据结构是编程的基础,当你设计一个程序的时候,好的数据结构设计对程序的性能来说很重要。
虽然c++中有STL,提供了一些常用的数据结构,但是如果要弄好程序设计的话,对常用的数据结构
达到精通的状态还是很重要的。

Csdn user default icon
上传中...
上传图片
插入图片