程序设计 = 数据结构 + 算法

1.数据结构

数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。

数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。

数据结构是静态的,它只是组织数据的一种方式。如果不在它的基础上操作、构建算法,孤立存在的数据结构就是没用的。

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

其实就是图书馆中所有的书。

数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。

就是书。

数据项:一个数据元素可以由若干个数据项组成。

其实一个Book对象就是数据元素,bookName、bookAuthor、bookPress就是数据项。

数据对象:是性质相同的数据元素的集合,是数据的子集。

其实就是某一类书。如图下图都是数据结构一类的书

数据结构中的结构,也就是我们研究的主体对象。数据结构中我们很少研究数据,因为数据在内存中的表现形式对于我们都是一样的,也就是二进制。传统上,我们把数据结构分为逻辑结构物理结构

逻辑结构:是指数据对象中数据元素之间的相互关系。包括集合结构、线性结构、树形结构、图形结构。

物理结构又叫存储结构,指数据的逻辑结构在计算机存储空间的存放形式。通俗的讲,物理结构研究的是数据在存储器中存放的形式。 存储器主要针对于内存而言,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。

顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。数组就是顺序存储结构的典型代表。

链式存储结构:是把数据元素存放在内存中的任意存储单元里,也就是可以把数据存放在内存的各个位置。这些数据在内存中的地址可以是连续的,也可以是不连续的。

和顺序存储结构不同的是,链式存储结构的数据元素之间是通过指针来连接的,我们可以通使用指针来找到某个数据元素的位置,然后对这个数据元素进行一些操作。

2.算法

算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。

重点掌握

10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、树

10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

c数据结构与算法设计 c数据结构与算法pdf_数据结构