数据结构与算法的联系
2016-01-30 14:37
253 查看
首先,数据结构是一门计算机语言学的基础学科,它不属于任何一门语言,其体现的是几乎所有标准语言的算法的思想。 上面的概念有一些模糊,我们现在来具体说一说,相信你门的数据结构使用的是一门具体的语言比如C/C++语言来说明,那是为了辅助的学习数据结构,而数据结构本身不属于任何语言(相信你把书上的程序敲到电脑里面是不能通过的吧,其只是描述了过程,要调试程序,还需要修改和增加一些东西)。你们的书上开始应该在讲究数据的物理存储结构/逻辑存储结构等概念,说明数据结构首先就是“数据的结构”,在内存上的存储方式,就是物理的存储结构,在程序使用人员的思想上它是逻辑的,比如: 你们在C/C++中学习到链表,那么链表是什么一个概念,你们使用指针制向下一个结点的首地址,让他们串联起来,形成一个接一个的结点,就像显示生活中的火车一样。而这只是对于程序员的概念,但是在内存中存储的方式是怎样的那?对于你程序员来说这是“透明”的,其内部分配空间在那里,都是随机的,而内存中也没有一个又一根的线将他们串联起来,所以,这是一个物理与逻辑的概念,对于我们程序员只需要知道这些就可以了,而我们主要要研究的是“逻辑结构”。 我可以给你一个我自己总结的一个概念:所有的算法必须基于数据结构生存。也就是说,我们对于任何算法的编写,必须依赖一个已经存在的数据结构来对它进行操作,数据结构成为算法的操作对象,这也是为什么算法和数据结构两门分类不分家的概念,算法在没有数据结构的情况下,没有任何存在的意义;而数据结构没有算法就等于是一个尸体而没有灵魂。估计这个对于算法的初学者可能有点晕,我们在具体的说一些东西吧:
相关文章推荐
- Nginx源码分析 - 基础数据结构篇 - 缓冲区结构 ngx_buf.c
- 数据结构(寒假小结)——3.2队列
- 数据结构——线性表
- Android笔记 - Binder之数据结构(一)
- Guid算法与标识列(自动增长字段)在表中的应用
- 高级数据结构实现——自顶向下伸展树
- 高级数据结构实现——自顶向下伸展树
- 数据结构学习心得总结
- 2015年大二上-数据结构-图-1-(5)-迷宫问题之图深度优先遍历解法
- 树[数据结构]
- 小蚂蚁学习数据结构(26)——题目——输出二叉树上值大于x的算法
- guava cache 存储的数据结构3 之 ValueReference -- 4
- Linux下tcpdump和Wireshark抓包的数据结构
- 数据结构基础
- 数据结构基础
- lua解析脚本过程中的关键数据结构介绍
- 数据结构-栈应用-迷宫
- 【数据结构学习笔记】——用链表形式的栈完成汉诺塔
- 数据结构:JavaScript实现队列
- 数据结构实验之链表五:单链表的拆分