数据结构-1

内存和外存
1.1.1 学习数据结构的必要性
    我们知道,虽然每个人都懂得英语的语法与基本类型,但是对于同样的题目,
    每个人写出的作文,水平却高低不一。
    程序设计也和写英语作文一样,虽然程序员都懂得语言的语法与语义,但是对于同样的问题,程序员写出来的程序不一样。
    有的人写出来的程序效率很高,有的人却用复杂的方法来解决一个简单的问题。    
只有多思索、多练习,才能提高自己的程序设计水平;否则,书看得再多,提高也不大。记得刚学程序设计时,常听人说程序设计水平要想提高,
最重要的是多看别人写的程序,多去思考问题。从别人写的程序中,我们可以发现效率更高的解决方法;
1、 数据(Data) 数据是外部世界信息的载体, 2、 数据元素(Data Element)和数据项(Data Item) 数据项有时也称为字段(Field)或域(Domain)。 3、 数据对象(Data Object) 数据对象是性质相同的数据元素的集合, 是数据的一个子集。例如,整数数 据对象是{0123,…},字符数据对象是{a,b,c,…}。 4、 数据类型(Data Type) 数据类型可分为两类:一类是非结构的原子类型,如 C#语言中的基本类型 (整型、实型、字符型等);另一类是结构类型,它的成分可以由多个结构类型 组成,并可以分解。结构类型的成分可以是非结构的,也可以是结构的。例如, C#语言中数组的成分可以是整型等基本类型,也可以是数组等结构类型。 5、 数据结构(Data Structure) 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问 题中,数据元素之间都不是孤立的,而是存在着一定的关系,这种关系称为结构 (Structure)。根据数据元素之间关系的不同特性,通常有 4 类基本数据结构: (1) 集合(Set):如图 1.1(a)所示,该结构中的数据元素除了存在“同属于一个集 合”的关系外,不存在任何其它关系。 (2) 线性结构(Linear Structure):如图 1.1(b)所示,该结构中的数据元素存在着一 对一的关系。 (3) 树形结构(Tree Structure):如图 1.1(c)所示,该结构中的数据元素存在着一对 多的关系。 (4) 图状结构(Graphic Structure):如图 1.1(d)所示,该结构中的数据元素存在着 多对多的关系。

们越来越重视数据结构,认为程序设计的实质是确定数据结构,加上设计一个好

的算法,这就是人们常说的“程序=数据结构+算法”。 下面只从算法的特性、算法的评价标准和算法的时间复杂度等三个
方面进行介绍。

3、 健壮性(Robustness)。一个算法应该具有很强的容错能力,当输入不合法的数
据时,算法应当能做适当的处理,使得不至于引起严重的后果。健壮性要求表明
算法要全面细致地考虑所有可能出现的边界情况和异常情况,并对这些边界情况
和异常情况做出妥善的处理,尽可能使算法没有意外的情况发生。



原文地址:https://www.cnblogs.com/rogge7/p/6264097.html