数据结构(C语言版)基本概念

1.数据(data)
所有能输入到计算机中并被计算机程序处理的符号的总称。
2.数据元素(data element)
数据的基本单位 ,通常作为一个整体进行考虑和处理。
一个数据元素可由若干个数据项(data item)组成,数据项是数据的不可分割的最小单位
3.数据对象(data object)
性质相同的数据元素的集合,是数据的一个子集
4.数据结构(data structure)
相互之间存在一种或多种特定关系的数据元素的集合
结构(structure):在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系。
数据结构的形式定义:数据结构是一个二元组
Data_Structure = (D,S)
D是数据元素的有限集,S是D上关系的有限集。
5.数据类型(data type)
一个值的集合和定义在这个值集上的一组操作的总称。和数据结构密切相关。
1)原子类型:其值不可再分的数据类型。如C语言中的基本类型、指针类型、空类型。
2)结构类型:其值可以再分为若干成分的数据类型。
6.抽象数据类型(Abstract Data Type,简称ADT)
一个数学模型以及定义在该数学模型上的一组操作。抽象数据类型的定义取决于它的一组逻辑特性,而与计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。
1)原子类型:其值不可分解。
2)固定聚合类型:其值由确定数目的成分按某种结构组成。
3)可变聚合类型:与固定聚合类型相比,构成可变聚合类型的‘值’的成分的数目不确定。
2、3可统称为为结构类型
4)多型数据类型:其值的成分不确定的数据类型。
抽象数据类型的形式定义:抽象数据类型可以用 三元组(D,S,P) 表示
D是数据对象,S是D上的关系集,P是对D的基本操作集。
7.数据结构的三要素
1)数据的逻辑结构:数据元素之间的逻辑关系
4种基本结构
①集合:结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他关系。
②线性结构:结构中的数据元素之间存在一个对一个的关系。
③树形结构:结构中的数据元素之间存在一个对多个的关系。
④图状结构或网状结构:结构中的数据元素之间存在多个对多个的关系。
2)数据的存储结构:数据结构在计算机中的表示(又称映像),也称物理结构
①顺序存储:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。
②链式存储:借助指示元素存储地址的指针表示数据元素之间的逻辑关系。
③索引存储:在存储元素信息的同时,还建立附加的索引表。
④散列存储:根据元素的关键字直接计算出该元素的存储地址,又称Hash存储。
3)数据的运算
施加在数据上的运算包括运算的定义实现
定义是针对逻辑结构;实现是针对存储结构
8.算法(Algorithm)
1)算法的基本概念
①有穷性②确定性③可行性④输入⑤输出
一个“好”的算法应达到以下目标:
①正确性②可读性③健壮性④效率与低存储量需求
2)算法效率的度量

  1. 时间复杂度 T(n)=O(f(n))
    最坏时间复杂度:在最坏情况下,算法的复杂度。
    平均时间复杂度:所有可能输入实例在等概率出现的情况下,算法的期望运行时间。
    最好时间复杂度:在最好情况下,算法的复杂度。
    分析程序时间复杂性规则:
    a)加法规则
    b)乘法规则
    常见的渐进时间复杂度:
    O(1) < O(log2n) < O(n) < O(nlog2n) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

  2. 空间复杂度

数据结构代码书写规范
①预定义常量和类型:

//函数结果状态代码
#definde TURE 1
#definde FALSE 0
#definde OK 1
#definde ERROR 0
#definde INFEASIBLE -1
#definde OVERFLOW -2
typedef int Status;	//Status是函数的类型,其值是函数结果状态代码
typedef int bool;	//bool是布尔类型,其值是TURE或FALSE

②数据结构的表示用类型定义(typedef)描述。
数据元素类型约定为ElemType,由使用时自行定义。

typedef int ElemType;	//整型
typedef char ElemType;	//字符型

③基本操作算法的函数描述形式:

函数类型	函数名(函数参数列表) {
	//算法说明
	语句序列
}//函数名

你可能感兴趣的:(数据结构笔记,数据结构,c语言)