数据结构 数据结构shuju jiegou对计算机而言,数据的含义极为广泛,数字、字符、图形、声音等,凡是可以输入到计算机中并可被计算机程序处理的各种信息都可称为数据,数据的基本单位是数据元素.数据结构就是指数据之间的关系.这种关系反映在数据之间的逻辑关系、数据在计算机中的存储方式和数据的操作三个方面.从集合论的观点看,数据结构是一个二元组,是数据元素的集合,又是数据元素相互间关系的集合. 在计算机中,数据本身怎样存储,数据间的关系怎样存储,或者说数据元素在计算机中的映象和数据元素间的关系在计算机中的映象,统称数据结构在计算机中的映象,就是数据的物理结构,或称数据的存储结构.在计算机中有两种不同的存储结构:顺序存储结构;非顺序存储结构(链式存储结构). 顺序存储结构的特点是,在逻辑上相邻的数据元素,在计算机中物理位置也相邻. 非顺序存储结构的特点是,在逻辑上相邻的数据元素,在计算机中物理位置不相邻,可放于任意位置,它们之间的逻辑关系是靠链指针来表示的. 在计算机科学中,数据结构不仅是一般程序设计的基础,且是设计和实现编译程序、操作系统、数据库系统,以及其他系统程序和大型应用程序的基础. ☚ 回溯 堆栈 ☛ 数据结构 数据结构Shuju jiegou数据是计算机的处理对象,数据之间通常有这样那样的关系,在进行数据处理的时候,也需要把数据依一定的方式组织起来。数据的组织和关联的方式称为数据结构。为了利用计算机进行高效率的数据处理,有必要对数据性质,数据间的关联方式及数据的组织方法进行深入的研究。就是说要对数据的结构进行研究,此外,对于有特定的数据结构的数据集合, 需要研究这类数据的特定处理方法和技巧,这正是计算机科学的基础之一,数据结构理论的研究对象。 常见的数据结构包括:线性表、树和图等,线性表表示数据之间的线性的顺序关系,是最简单,最基本的数据结构。按存储方式分,线性表可以分为顺序存储的和链接存储的, 从程序的角度分别叫做数组和线性链表,数组适用于成批处理的成组数据,而链表则适用于增删比较频繁的动态情况,如稀疏数组或稀疏矩阵等。从链接方式看,线性链表又可进一步分为单向的、双向的及循环的链表。从存取和增删方式来看,有两种值得特别注意的线性表,其一为队列,特点是先进先出,即插入到记录在队尾进行,而删除记录则在队头进行。其二为堆栈,特点是后进先出,插入与删除记录均在栈顶进行。堆栈是程序设计中极为重要的概念,表达式求值时中间结果的计算, 过程和上数调用时返回地址存放以及编译程序的动态存储管理等都离不开堆栈。 树是一种特殊的图,也是由节点和边构成,边是有向的,节点a称为节点b的父节点,若存在从a到b的边,树的定义是,有唯一的一个节点,是所有其它节点的祖先,除了根之外每一节点有唯一的文节点。树可以用来表示数据之间的层次关系。树的末端节点叫做叶节点,可以根据非叶节点的分枝数目进行树的分类,例如二叉树,多叉树等。其中二叉树在数据处理中有非常广泛的应用。 图由节点与边组成,一条边连接 二个节点,图可以分为有向图和无向图。图的存储方式有两种,其一为邻接矩阵(二维数组),若两节点间有边相连,则矩阵中相应位置取值为1, 否则取值为0。其二为邻接表, 为每一节点设置一个链表, 存放所有与该节点相邻接的节点。图可以用来表示数据之间的网状关系。 关于图和树的处理,有遍历算法(对于二叉树,有先根优先、中根优先与后根优先,对于图,有深度优先和广度优先),此外还有求图的单原或任意二点间的最短路径, 求树的加权最小路长等算法。 数据结构中讨论最多的算法是排序和查找。考虑此两种操作时,要注意内外有别,就是说如果操作涉及到外存储器, 需要注意尽可能减少内外存交换信息的次数, 这是因为从外存读取数据比从内存读取数据要慢得多。排序和查找的算法很多,内容丰富,与数据的结构(组织方式)有密切的关系,目的是明确的,就是提高数据处理的效率。 ☚ 文件 数据库 ☛ 数据结构由简单类型的数据构造复杂类型数据的方法和表示。高级程序设计语言具有这种构造能力,使得这种语言适用范围扩大。如PASCAL语言就比ALGOL、FORTRAN、COBOL等语言的应用广泛。它的研究,反映了程序设计研究对象的转移。 数据结构数据的组织形式。它由简单类型的数据构造复合类型数据的表示和方法。可分为抽象数据结构(串、数组、队列和栈等)和内部存储结构(向量、链表等)。 数据结构 数据结构Data Structure数据库中数据的组织形式。有抽象数据结构和内部存储结构之分。抽象数据结构包括串、数组、队列、栈、表、树和有向图等。内部存储结构包括向量、链表和丛等。 ☚ 数据 数据定义 ☛ 数据结构data structure |