数据结构和算法,哪个好

都挺好 , 特点不一样 , 不惧备可比性 。
看到这个提问 , 我觉得很有意思 , 来回答你一下 。
首先你问这个问题可以判断出你应该是一个刚接触互联网行业的人 , 或者刚知道什么是数据结构和算法 。
其实两者缺一不可 , 相辅相成 , 根本不存在对比性 , 相互依赖的关系 。希望对你有帮助 。
有何其他见解 , 欢迎赐教 。
数据结构 和 算法 没有哪个好这一说 , 两者缺一不可 , 记得有一个公式来着:程序设计=数据结构+算法 。
这两个是没有可比性的 , 两个是相辅相成的 , 数据结构需要算法的支撑 , 算法的实现又需要数据结构的支撑 , 两者是分不开的 , 缺了哪一个都玩不转 。常见的数据结构包括如下几种:
数组(Array)
数组是一种聚合数据类型 , 它是将具有相同类型的若干变量有序地组织在一起的集合 。数组可以说是最基本的数据结构 , 在各种编程语言中都有对应 。一个数组可以分解为多个数组元素 , 按照数据元素的类型 , 数组可以分为整型数组、字符型数组、浮点型数组、指针数组和结构数组等 。数组还可以有一维、二维以及多维等表现形式 。
栈( Stack)
栈是一种特殊的线性表 , 它只能在一个表的一个固定端进行数据结点的插入和删除操作 。栈按照后进先出的原则来存储数据 , 也就是说 , 先插入的数据将被压入栈底 , 最后插入的数据在栈顶 , 读出数据时 , 从栈顶开始逐个读出 。栈在汇编语言程序中 , 经常用于重要数据的现场保护 。栈中没有数据时 , 称为空栈 。
队列(Queue)
队列和栈类似 , 也是一种特殊的线性表 。和栈不同的是 , 队列只允许在表的一端进行插入操作 , 而在另一端进行删除操作 。一般来说 , 进行插入操作的一端称为队尾 , 进行删除操作的一端称为队头 。队列中没有元素时 , 称为空队列 。
链表( Linked List)
链表是一种数据元素按照链式存储结构进行存储的数据结构 , 这种存储结构具有在物理上存在非连续的特点 。链表由一系列数据结点构成 , 每个数据结点包括数据域和指针域两部分 。其中 , 指针域保存了数据结构中下一个元素存放的地址 。链表结构中数据元素的逻辑顺序是通过链表中的指针链接次序来实现的 。
树( Tree)
树是典型的非线性结构 , 它是包括 , 2个结点的有穷集合K 。在树结构中 , 有且仅有一个根结点 , 该结点没有前驱结点 。在树结构中的其他结点都有且仅有一个前驱结点 , 而且可以有聊个后继结点 , m≥0 。
图(Graph)
图是另一种非线性数据结构 。在图结构中 , 数据结点一般称为顶点 , 而边是顶点的有序偶对 。如果两个顶点之间存在一条边 , 那么就表示这两个顶点具有相邻关系 。
【数据结构和算法,哪个好】堆(Heap)
堆是一种特殊的树形数据结构 , 一般讨论的堆都是二叉堆 。堆的特点是根结点的值是所有结点中最小的或者最大的 , 并且根结点的两个子树也是一个堆结构 。[
散列表(Hash)
散列表源自于散列函数(Hash function) , 其思想是如果在结构中存在关键字和T相等的记录 , 那么必定在F(T)的存储位置可以找到该记录 , 这样就可以不用进行比较操作而直接取得所查记录 。
每种数据结构的实现都需要算法 。两者不在一个层级上 , 无法对比优劣 。
都蛮不错的 。不过算法简单一些 , 数据结构难一些~~

秒懂知识为您整理更多相关内容。
这问题问出个假程序员[捂脸]

数据结构和算法是计算机科学不可避免的两个概念 , 两者相互依存 。
在算法工程师中有这样一句话 , "数据结构决定了算法的实现" , 可见数据结构与算法的关系不一般!
数据结构 , 顾名思义 , 它是用来管理数据存储形式的 , 常见的线性结构 , 比如 , 数组、堆栈、队列、链表等 , 非线性结构如图、树等 。数据结构将数据进行有效的管理 。比如图书馆将书籍分门别类的排放 , 相同类别又按书籍名称字母排列 , 这样我们就可以在成千上万本书中 , 快速的找到我们想要的书 。这就是数据结构的好处 。
而算法是解决问题的一种方法或方式 , 它将已知的数据 , 通过特定逻辑的加工 , 产生相应的结果 , 还是图书馆的举例 , 数据结构是摆放书籍 , 而按照类别、名称找到书的过程就是算法 , 常见算法有枚举、贪心、递归、递推、模拟、分治、搜索、动态规划、排序等等 , 广义上来讲 , 只要是能解决问题方法或过程都可以称之为算法 。