绪论
第一个很有意义,又没什么意义的问题:什么是数据结构??
其实,数据结构在计算机科学界至今没有标准的定义。个人根据各自的理解的不同而有不同的表述方法:
- Sartaj Sahni在他的《数据结构、算法与应用》一书中称:
“数据结构是数据对象,以及存在于该对象的实例合组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”
他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。
- Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是 ADT(抽象数据类型Abstract Data Type) 的物理实现。”
- 《算法导论》一书中定义:“数据结构是存储和组织数据的一种方式,以便于对数据进行访问和修改”
其实,究竟什么是数据结构这个问题
真的并不是很重点。您将会在进一步学习它之后,有自己对它的一种理解。
我们更应该关心的是,学习数据结构
能为我们解决什么样问题?它给我们
带来什么样的好处?
其中一个答案是,创建一个结构体,里面包含了本人的名字和他老爸的名字,这样,当我找到这个人的名字的时候,相应的就可以知道他老爸是谁了,
可是这样好像很浪费空间啊,每有一个老爸就要多一份存储名字的空间,
一个家族里面有很多的老爸啊,
如果您这样做了,那么您已经在使用数据结构了!
程序设计实际 = 好的结构 + 好的算法!
数据结构就是一门为您提供好的结构和好的算法的学科!
简单的讲,学习数据结构,您就可以编写更好的程序!
数据结构相关的一些概念和术语:
算法的设计要求:
效率和存储量在一般情况下不好兼得,至于优先考虑哪个,要看具体的应用了。
要学会简单衡量(具体的在后面讨论):
最后,我想说一句,数据结构真的不好学,就严蔚敏老师那本300页的数据结构(C语言版),都足足够看一两个月了。
但是,如果您想作为一名合格的程序员,相信我,学好的它吧,不管有多难!
(
在C++的STL中,很多数据结构已经实现了,例如:表list、堆stack、队列queue)
原文地址:https://www.jb51.cc/datastructure/383043.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。