开发者社区> 问答> 正文

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

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

展开
收起
a123456678 2016-03-05 09:29:58 2230 0
1 条回答
写回答
取消 提交回答
  • 首先树的定义很广,由一个或多个节点组成的有线集合,存在一个根节点,所有非根的节点一定有一个祖先,这是树;一个图中有n个点和n-1条边,这也是树,百度一下都有
    树的结构用的最多的是二叉树,它可以优化一些操作。比如用数组模拟规模是n的一个数列,要支持在任意位置插入/删除一个数、询问第k个数是多少,那么插入删除最坏情况下是要做n次操作,询问只要1次。如果链表模拟的话插入、删除都是1次操作,但是询问最坏情况下是要做n次操作。这样最坏情况下都是可以用特殊数据卡你时间的。但是用平衡树就可以解决。平衡树的插入、删除、询问最坏情况下都是只要log2n的,这样就解决了时间的问题。并不是说平衡数就一定比数组、链表模拟好,所有高级数据结构的思想都是放弃一些操作的效率,来换取另一些操作效率变快。具体还是要看情况决定。

    2019-07-17 18:52:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
对象的生命期管理 立即下载
移动与复制 立即下载
使用C++11开发PHP7扩展 立即下载