zoukankan      html  css  js  c++  java
  • 常用数据结构

    数据结构(计算机存储、组织数据方式)

    一.数据结构的的几个概念

       1.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

        可以简单表示为:数据结构 = 数据 + 关系

        数据结构包括逻辑结构和存储结构两个方面。

      2.数据的逻辑结构。是指对数据及其关系的抽象逻辑描述,对立与计算机,与机器实现无关。

        根据定义的关系不同,数据的逻辑结构分为四种:

        集合结构。数据元素之间未定义任何相关的松散集合。

        线性结构。数据元素之间定义了次序关系的集合(全序集合),描述的是1对1关系。

        树形结构。数据元素之间定义了层次关系的集合(偏序集合),描述的是1对多关系。

        图状结构。数据元素之间定义了网状关系的集合,描述的是多对多关系。

      3.数据的存储结构(亦成物理结构)是指数据结构在计算机存储器中的具体实现。

        存储结构与孤立的数据元素表示形式不同,数据结构中的数据元素不但要表示其本身的实际内容,还要表示清楚数据元素之间的逻辑结构。

        常见的存储结构有:顺序存储结构、链式存储结构、散列存储结构、索引存储结构

    二.常用的数据结构

      数组(Array)

        在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。

      堆(Heap)

        在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。

      栈(Stack)

        是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。

      队列(Queue)

        一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

      链表(Linked List)

        是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。

        链表是由一系列结点组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储自身数据元素的数据域,另一个是存储下一个结点地址的指针域。

       链表可在任意位置插入或删除元素;而队列在队尾插入元素,队头删除元素;栈只能在栈顶进行插入删除操作。

      树(Tree)

        是包含n(n>0)个结点的有穷集合K,且在K中定义了一个关系N,N满足 以下条件:

        (1)有且仅有一个结点 k0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。

        (2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。

        (3)K中各结点,对关系N来说可以有m个后继(m>=0)

      图(Graph)

        图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。

      散列表(Hash)

        若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。

      

  • 相关阅读:
    拥有自己的代码生成器—Newlife.XCode模板编写教程
    基于Newlife.XCode的权限系统(含数据集权限)【设计篇】
    拥有自己的代码生成器—NewLife.XCode代码生成器分析
    利用javascript来转换GB2312到UNICONDE &#形式
    和荣笔记 从 Unicode 到 GB2312 转换表制作程式
    如何做SVN迁移
    和荣笔记 GB2312 字符集和编码说明
    asp对象化之:基于adodb.stream的文件操作类
    Unicode 汉字内码表
    微软建议的ASP性能优化28条守则 之三
  • 原文地址:https://www.cnblogs.com/victorwu/p/5216044.html
Copyright © 2011-2022 走看看