数据结构1:认识数据结构与算法

程序 + 文档 = 软件

算法 + 数据结构 = 程序

数据结构与算法的理论基础离散数学中的图论、集合论和关系论等。

数据结构课程的内容来源于图论、操作系统、编译系统、编码理论及检索与排序技术等。


1.什么是数据结构?

非数值型程序设计中数据的组织方式及其处理的算法

数据结构的三个方面

(1)数据的逻辑结构

逻辑结是式数据的组织形式,与机器无关。

4种基本的逻辑结构:

集合:数据元素除了“属于同一集合”的关系外,没有其他关系。
线性结构:数据元素之间存在一对一的关系。如:线性表,栈,队列
层次结构:数据元素之间存在一对多的关系。如:树
网状结构:数据元素之间存在若干个多对多关系。如:图

(2)数据的物理结构(存储结构)

指数据在存储器种的存放方式,包括数据元素的表示和关系的表示。

4种基本的存储结构:

顺序存储:将数据结构中各元素按照其逻辑顺序存放于一片连续的存储空间中。如C语言的一维数组。

优点:随机访问快(可以直接计算数据的地址)
缺点:插入、删除效率低,不利于动态增长

链式存储:数据结构中各元素可以存放到存储器的不同地方,数据元素之间以指针(地址)链接。

缺点:随机访问慢
优点:便于插入、删除和动态增长

索引存储:

在存储数据的同时,建立一个附加的索引表,即索引存储结构 = 数据 + 索引表。索引表存放各数据元素的地址  

索引表的组织方式:
顺序存储:索引表占用连续空间
链式存储
索引存储:多级索引(多重索引)
 例如,二级索引:将一个大文件的所有索引表(二级索引)的地址放在另一个索引表(一级索引)中
 此外,还有三级索引等。

散列存储:根据数据元素的特殊字段(称为关键字key),计算数据元素的存放地址,然后数据元素按地址存放,所得到的存储结构为散列存储结构(Hash结构)

(3)数据的操作(算法实现)

基本的数据操作:增删改查
查找:在数据结构中寻找满足某条件的数据元素的位置或值。
插入:在数据结构中添加新的数据元素。
删除:删去数据结构中指定的数据元素。
更新:改变数据结构中某个数据元素一个或多个数据项的值。

排序:重新安排数据元素之间的逻辑顺序,使之按(某个数据项的)值由小(大)到大(小)的次序排列


2.什么是算法?

算法是一个有穷规则(或语句、指令)的有序集合。它确定了解决某一问题的一个操作序列。对于问题的初始输入,通过算法有限步的运行,产生一个或多个输出。
 简单地说,算法是指解决问题的由一系列具体步骤组成的方法或过程。
对特定问题求解步骤的一种描述

是一有限长的操作序列       

算法的性质

1)    有穷性—— 算法执行的步骤是有限的,就是说是可终止的;

 2)    确定性—— 每个计算步骤无二义性;

 3)    可行性—— 每个计算步骤能够在有限的时间内完成;

 4)   输入—— 算法有一个或多个输入;

 5)    输出—— 算法有一个或多个输出。


猜你喜欢

转载自blog.csdn.net/Softdiamonds/article/details/80515779