数据结构---C语言基础
程序=算法+数据结构 数据结构是设计OS、DBMS、编译等系统程序和各种应用程序的重要基础。 常见的数据结构有:数组、栈、队列、表、串、树、图和文件等。 数据是什么? ①杂乱的数据不能表达和交流信息 ②数据之间是有联系的 ③数据之间是有结构的; ④在某种数据的结构上可以定义一组运算 程序设计的基本要素: 数据(Date) :所有能被计算机处理的符号的集合。 数据元素(Data Element) :数据这个集合中的单个个体。 数据项(Data Item) :数据元素常常被分为若干个数据项,数据项是数据具有意义的最小单位。 数据对象(Data Object) :具有相同特性的数据元素的集合。 数据结构(Data Structure) :是带有结构的数据元素的集合。 逻辑结构(Logical Structure) :指数据元素之间的结构关系。 物理结构(Physical Structure) :指数据结构在计算机内存中的表示。 物理结构的存放直接决定了逻辑结构的选择。 什么是算法 算法是一个有限的指令集,遵循指令流可以完成特定的功能。 算法的基本特性: 如何衡量一个正确算法的好坏? 算法与程序的区别 主要区别在:有穷性、正确性和描述方法 程序可以是无穷的,例如OS。 算法是有穷的;程序可以是错误的,算法必须是正确的; 程序是用程序设计语言描述,在机器上可以执行; 算法还可以用框图、自然语言等方式描述。 衡量的三个标准: 运行所花费的时间(算法的时间特性); 所占用存储空间的大小(算法的空间特性); 其他(可读性、易调性、健壮性、可移植性等) 时间和空间特性的巨大改进源于更好的数据结构或算法。 为什么要计算时间复杂度? 设:A1,A2和A3是求解同一问题的不同算法,其时间复杂度分别为:O(n), O(nlogn), O(N!)。 C1和C2为计算机,且C2的计算速度是C1的10倍。 不必追求高效算法,低效算法可由高速计算机来弥补的看法,是错误的。
c语言常见的数据结构有哪些?
1、线性数据结构元素之间一般存在元素之间存在一对一关系,是最常用的一类数据结构,典型的有:数组、栈、队列和线性表。2、树形结构结点间具有层次关系,每一层的一个结点能且只能和上一层的一个结点相关,但同时可以和下一层的多个结点相关,称为“一对多”关系,常见类型有:树、堆。3、图形结构在图形结构中,允许多个结点之间相关,称为“多对多”关系。(1)线性数据结构:元素之间一般存在元素之间存在一对一关系,是最常用的一类数据结构,典型的有:数组、栈、队列和线性表(2)树形结构:结点间具有层次关系,每一层的一个结点能且只能和上一层的一个结点相关,但同时可以和下一层的多个结点相关,称为“一对多”关系,常见类型有:树、堆(3)图形结构:在图形结构中,允许多个结点之间相关,称为“多对多”关系