精华内容
下载资源
问答
  • 数据结构与算法绪论PPT学习教案.pptx
  • 数据结构与算法绪论

    2020-03-04 11:27:46
    数据结构与算法绪论 ·课程性质课程目标 课程目的是能够了解计算机所处理的数据对象的特性,掌握数据的表示、组织和处理方法,以便选择合适的数据的逻辑结构、存储结构以及相应的运算,将现实中的问题转化为在...

    数据结构与算法绪论

    ·课程性质与课程目标

    1. 课程目的是能够了解计算机所处理的数据对象的特性,掌握数据的表示、组织和处理方法,以便选择合适的数据的逻辑结构、存储结构以及相应的运算,将现实中的问题转化为在计算机内部的表示和处理。
    2. 课程内容包含:
      (1) 掌握各种线性与非线性数据结构的逻辑结构与物理结构的定义、性质和表述方法,熟悉建立在各种数据结构上的常见算法。
      (2) 掌握计算机数据处理中的两大常用运算,查找和排序。

    ·引言

    1. 著名的瑞士计算机科学家沃斯(N.Wirth)教授曾提出:算法+数据结构=程序;这里的数据结构指的是数据的逻辑结构和存储结构,而算法则是对数据运算的描述。
    2. 数据结构是研究非数值计算的程序设计问题中,计算机的操作对以及它们之间的关系和操作的一门课程。具体地说,数据结构指的是数据元素之间的逻辑结构、存储结构及其数据的抽象运算。即按某种逻辑关系组织起来的一组数据,再按一定的存储表示方式把它们存储在计算机的存储器中,并在这些数据上定义一系列运算的集合,就叫做一个数据结构。

    ·基本概念和常用术语

    1. 数据(data) date,描述客观事物的数、字符以及能输入计算机中并被计算机处理的符号的集合。其实质是信息的载体,信息的物质表示。
    2. 数据元素(data element),是数据的基本单位。表中的一行,树中的一个节点,图中的一个顶点等都是一个数据元素。数据元素是一个分子,可以由若干个原子,即数据项组成。
    3. 数据对象(data object),是具有相同性质的数据元素的集合,是数据的子集。

    ·数据结构包含的内容

    1. 数据结构是带有结构的数据元素的集合。即数据对象+对象间关系=数据结构
    2. 结构指的是数据元素之间的相互关系,即数据的组织形式,结构中的数据元素被称为结点。
      ·数据结构的三个方面
    3. 数据元素之间的逻辑(抽象)关系,即数据的逻辑结构:
      (1) 数据的逻辑结构是从逻辑关系上描述数据的,它与数据的存储结构无关。是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。例如在线性表中,对表中任意一个节点,与之相邻的且在它前面的结点称为直接前趋,这种前趋最多只有一个;与之对应,在此节点之后存在最多一个的直接后继。表中第一个结点没有直接前趋,称为开始结点;表中最后一个结点没有直接后继,称为终端结点。
      (2) 数据的逻辑结构可以分为:
      ① 线性结构:数据元素,即结点之间存在着一对一的关系,且结构中只有一个开始结点与一个终端结点,其余结点有且仅有一个直接前趋和一个直接后继。
      ② 非线性结构:数据元素之间存在着一对多(树)或多对多(图)的关系。即一个结点可能存在多个直接前趋和直接后继。包括了树、图、网。
    4. 数据元素及其关系在计算机内的存储表示(映像),亦称为数据的存储结构或物理结构。
      (1) 如果各向量,(数据元素具有方向性)按其逻辑关系顺序存储,就称为“顺序存储结构”;
      (2) 如果各向量按其指针连接存储在内存中,就称为“链式存储结构”。
      (3) 数据的存储结构可以用以下四种方式实现:
      ① 顺序存储方法:把逻辑上相邻的结点存储在物理位置上也相邻的连续存储单元里,由此得到的存储结构称为顺序存储结构。它通常有程序设计语言里的数组来描述的。该方法主要应用于线性的数据结构,但非线性的数据结构也可以通过某种线性化的方法来实现顺序存储;
      ② 链接存储方法:逻辑上相邻的结点在物理内存中不一定相邻,主要是通过指针域表示其与直接前趋与直接后继的关系。它主要是通过程序设计语言中的指针实现的。
      ③ 索引存储方法:通常是在存储元素信息的同时,还建立附加的索引表。表中的索引项一般形式是:(关键字,地址)。关键字是能唯一标识一个元素的一个数据项或多个数据项的组合。
      ④ 散列(Hash)存储方法:基本思想是根据元素的关键字直接计算出该元素的存储地址。
    5. 数据的运算,即对数据元素施加的操作(行为)。
      (1) 数据的运算是定义在数据的逻辑结构上的,每种逻辑结构都有一个运算的集合,最常用的运算有:检索,插入,删除,更新,排序等。数据运算是数据结构不可分割的一个方面。对数据运算定义的不同,可能导致完全不同的数据结构。插入删除只能在表的一端,被称为栈;插入在一端,删除只能在另外一端的,被称为队列。
    6. 数据类型,data type,是一个值的集合和定义在值集上的一组操作的总称。在高级程序设计语言中,每一个变量,常量或表达式都有一个它所属的数据类型。数据类型规定了在程序运行期间变量或表达式可能的取值范围以及在这些值上所允许的操作运算。例如,在C语言中的整数类型,就给出了一个整型量的取值范围,取决于不同的机器或编译系统,定义了对整型量可施加的加减乘除取模等算术运算。

    ·抽象数据类型

    1. 抽象数据类型(Abstract data type ),简称ADT。它是抽象数据的组织和与之相关的操作。一个ADT可以看作是定义了相关操作运算的一个数学模型。例如,集合与集合之间的交、并、补、差运算就可以定义为一个抽象数据类型。在面向对象语言中,我们可以把ADT定义为一个类。

    · 算法的描述和分析

    1. 前边已经叙述过,研究数据结构的目的在于更好地进行程序设计。而程序设计离不开数据的运算,这种运算的过程通常称为算法。
    2. 算法是对问题求解步骤的一种描述。通俗地讲,一个算法就是一种解题的方法。严格地说,算法是由若干条指令组成地又穷序列,其中每条指令表示一个或多个操作。
    3. 算法地五条特性:
      (1) 输入。算法开始前必须给算法中用到的变量初始化,一个算法的输入可以有零个或多个。
      (2) 输出。算法至少有一个输出。
      (3) 有穷性。算法中每一条指令的执行次数有限,每一步都在有穷的时间内完成,即算法必须在执行有限步后结束。
      (4) 确定性。算法的每一步的含义必须明确,,无二义性。。
      (5) 可行性。算法中的每一步都可以被有限次的运算来实现。
    4. 算法优劣的比较:
      (1) 算法必须是正确的,是指对于一切合法的输入,该算法必须在有限的时间内得到正确的结果
      (2) 执行算法所需的步骤数,即时间复杂度
      (3) 执行算法所需的存储空间,即空间复杂度
      (4) 算法应易于理解,易于编程,易于调试,即可读性和可操作性。
      在以上4点中,最重要的是第二条,即时间复杂度。
    5. 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记为:T(n)=O(f(n))
    6. 求一个算法的时间复杂度,只需要估计它的阶即可。
      (1) 常数:O(1)
      (2) 对数:O(log n)
      (3) 线性:O(n)
      (4) 线性对数阶:O(nlogn)
      (5) 平方:O(n^2)…幂次方阶
      (6) 指数:O(2^n)
      (7) 阶乘:O(n!)
    展开全文
  • 数据结构与算法 绪论

    2021-11-06 20:10:41
    数据结构与算法基础知识

    数据结构与算法基础知识

    在这里插入图片描述

    展开全文
  • 一、数据结构的基本概念和术语 1、数据 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号集合。数据是计算机程序加工的原料。 2、数据元素 数据元素是数据...

    一、数据结构的基本概念和术语

    1、数据

    数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号集合。数据是计算机程序加工的原料。

    2、数据元素

    数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录就是一个数据元素,它是由学号、姓名、性别、年龄等数据项组成。

    3、数据对象

    数据对象是具有相同性质的数据元素的集合,是数据的一个子集。

    4、数据类型

    数据在计算机中存储必须按照数据的分类存储,根据分类应该用数据类型划分,数据类型用以刻画(程序)操作对象的特性,类型明显或隐含地规定了在程序执行期间变量或表达式所有可能的取值范围,以及在这些值上允许进行的操作。因此数据类型是一个值的集合和定义在这个值集合上的一组操作的总称。如程序语言中的整型变量、字符型变量,都确定了数据的取值范围。
    分为三类:
    1、原子类型:其值不可分解的数据类型,如高级语言中的基本数据类型(整型、字符型等)。
    2、结构类型:是由若干成分按某种结构组成的,是可以分解的。
    3、抽象数据类型(ADT):指抽象数据组织和与之相关的操作。每一个操作由它的输入和输出定义。抽象数据类型的定义取决于它的一组逻辑特性,而与其在计算机内的表示和实现无关,也就是说,无论其内部结构如何变化,只要其数学特性不变,都不影响其外部的使用。

    5、数据结构

    数据结构(Data Structure)是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素都不是孤立存在的,它们之间存在某种关系,这种数据元素相互之间的关系称为结构(Structure)。数据结构包括三方面内容:逻辑结构、存储结构和数据的运算。
    数据的逻辑结构和存储结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。

    二、数据结构的三要素

    1、数据的逻辑结构

    逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据的存储无关,是独立于计算机的。数据的逻辑结构分为线性结构和非线性结构
    1、线性结构:在线性结构中,有且仅有一个开始和终端结点,并且所有节点都最多有一个直接前驱和一个直接后继。也就是,数据元素之间存在“一对一”的关系。常见的线性结构有:数组、链表、队列、栈等。
    2、非线性结构:非线性结构就是表中各个结点之间具有多个对应关系(即一对多关系和多对多关系),在非线性结构的一个结点可能有多个直接前驱结点和多个直接后继结点。常见的非线性结构有:二维数组、多维数组、树结构、图结构等。

    在这里插入图片描述

    按照四类的基础逻辑结构划分:
    1、集合:结构中的数据元素之间除“同属于一个集合外”,没有其他关系,如图a所示。
    2、线性结构:结构中的数据元素之间只存在一对一的关系,如图b所示。
    3、树型结构:结构中的数据元素之间存在一对多的层次关系,如图c所示。
    4、图状结构或网状结构:结构中的数据元素之间存在多对多的任意关系,如图d所示。

    在这里插入图片描述

    2、数据的存储结构

    存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。它包括数据元素的表示和关系的表示。数据的存储结构是用计算机语言实现的逻辑结构,它依赖于计算机语言。数据的存储结构主要有顺序存储、链式存储、索引存储和散列存储。
    1、顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元里,元素之间的关系由存储单元的邻接关系来体现(数组采用的就是顺序存储结构)。其优点是可以实现随机存取,每个元素占用最少的的存储空间;缺点是只能使用相邻的一整块存储单元,因此可能产生较多的外部碎片。
    2、链式存储:不要求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。其优点是不会出现碎片现象,能充分利用所有的存储单元;缺点是每个元素因存储指针而占用额外的存储空间,且只能实现顺序存取。
    3、索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)。其优点是检索速度快;缺点是附加的索引表额外占用存储空间。另外,增加和删除数据时也要修改索引表,因而会花费较多的时间。
    4、散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储。其优点是检索、增加和删除结点的操作都很快;缺点是若散列函数不好,则可能出现元素存储单元的冲突,而解决冲突会增加时间和空间开销。

    3、数据的运算

    施加在数据结构上的运算包括运算的定义和实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。

    三、算法的基本概念

    1、基本概念

    算法(Algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。
    算法重要特性:
    1、有穷性:算法必须在有限的步骤内结束。且每一步都在有限的时间内完成。如果一个算法由无限的步骤组成,该算法不可能有计算机程序实现。计算机只能解决有限问题,不能解决无限问题。
    2、确定性:算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出。
    3、可行性:算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。
    4、输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。
    5、输出:一个算法有一个或多个输出,这些输出是与输入有着某种特定关系的量。

    2、算法设计要求

    1、正确性:算法设计应满足具体问题的需求。它至少应该包括对输入、输出及加工过程等的明确的无歧义性的描述。
    2、可读性:算法主要是为了阅读与交流,算法可读性好有助于对算法的理解。
    3、健壮性:当输入非法的数据时,算法能够适当地作出反应或进行处理,不会产生莫名其妙的输出结果。
    4、效率与低存储量需求:效率是指算法执行的时间,存储量需求是指算法执行过程中所需要的最大存储空间,这两者都与问题的规模有关。

    3、数据结构与算法关系

    两者既有联系又有区别,联系是程序=数据结构+算法。数据结构是算法实现的基础,算法总是要依赖某种数据结构来实现,本质上算法的操作对象就是数据结构。区别是数据结构关注的是数据的逻辑结构、存储结构相关的操作,而算法更多的是关注如何在数据结构的基础上解决实际问题。
    所以说,算法是编程思想,数据结构则是这些思想的基础,高效的程序需要在数据结构的基础上设计和选择算法。

    四、算法效率的度量

    1、度量标准

    算法效率的度量是通过时间复杂度和空间复杂度来描述的。

    2、时间复杂度

    语句的频度:是指该语句在算法中被重复执行的次数。算法中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,时间复杂度主要分析T(n)的数量级。算法中基本运算(最深层循环内的语句)的频度与T(n)同数量级,因此通常采用算法中基本运算的频度f(n)来分析算法的时间复杂度。
    公式T(n)=O(f(n))
    O:表示T(n)的数量级,其严格的数学定义表示,若T(n)f(n)是定义在正整数集合上的两个函数,则存在正常数C n 0 n_0 n0,使得当 n > = n 0 n>=n_0 n>=n0时,都满足0<=T(n)<=C*f(n)
    1、分析算法时,存在几种可能的考虑:
    1. 算法完成工作最少需要多少基本操作,即最优时间复杂度
    2. 算法完成工作最多需要多少基本操作,即最坏时间复杂度
    3. 算法完成工作平均需要多少基本操作,即平均时间复杂度
    4. 对于最优时间复杂度,其价值不大,因为它没有提供什么有用信息,其反映的只是最乐观最理想的情况,没有参考价值。
    5. 对于最坏时间复杂度,提供了一种保证,表明算法在此种程度的基本操作中一定能完成工作,一般总是考虑在最坏情况下的时间复杂度
    6. 对于平均时间复杂度,是对算法的一个全面评价,因此它完整全面的反映了这个算法的性质。但另一方面,这种衡量并没有保证,不是每个计算都能在这个基本操作内完成。而且,对于平均情况的计算,也会因为应用算法的实例分布可能并不均匀而难以计算。
    2、时间复杂度的几条基本计算规则:
    1. 基本操作,即只有常数项,认为其时间复杂度为 O(1) 。
    2. 顺序结构,时间复杂度按加法进行计算。
    3. 循环结构,时间复杂度按乘法进行计算。
    4. 分支结构,时间复杂度取最大值。
    5. 判断一个算法的效率时,往往只需要关注操作数量的最高次幂,可以忽略所有常数项、低次幂项和最高次幂的系数。
    6. 在没有特殊说明时,我们所分析的算法的时间复杂度都是指最坏时间复杂度。
    @Test
    public void test1(int n){
        int sum = 0;//执行1次
        for (int i = 0; i < n; i++) {//int i=0执行1次,i<n执行了n+1次,i++执行了n次
            sum += i;//执行了n次
        }
    }
    //语句频度:T(n)=3n+3
    //时间复杂度:T(n)=O(n)
    

    3、常见时间复杂度

    1、常数阶O(1):无论代码执行了多少行,只要没有循环等复杂结构,那这个代码的时间复杂度就都是O(1)。在下面代码中,没有循环等复杂结构,它消耗的时间并不随着某个变量的增长而增长,那么无论代码多长,都可以用常数阶表示。
    @Test
    public void test2(){
        int num1 = 3, num2 = 5;
        int temp = num1;
        num1 = num2;
        num2 = temp;
        System.out.println("num1:" + num1 + " num2:" + num2);
    }
    
    2、对数阶:在循环中,每趟循环执行完毕后,循环变量都放大两倍。
    推算过程:在下面代码中,假设该循环的执行次数为 X X X次(也就是 i i i的取值为 2 x 2^x 2x),就满足了循环的结束条件,即满足了 2 x = n 2^x=n 2x=n,通过数学公式转换后,即得到 x = l o g 2 n x=log2n x=log2n,也就是说最多循环 l o g 2 n log2n log2n次以后,这个代码就结束了,因此时间复杂度为 O ( l o g 2 n ) O(log2n) O(log2n)。如果循环变量放大3倍,那么时间复杂度为 O ( l o g 3 n ) O(log3n) O(log3n)
    @Test
    public void test3(){
        int n = 1024;
        for (int i = 0; i < n; i *= 2) {
            System.out.println(i);
        }
    }
    
    3、线性阶:在下面的代码中,for循环会执行n次,因此它消耗的时间随着n变化而变化的,因此这类代码都可以用 O ( n ) O(n) O(n)来表示时间复杂度。
    @Test
    public void test4(){
        int n = 1024;
        for (int i = 0; i < n; i ++) {
            System.out.println(i);
        }
    }
    
    4、线性对数阶:将对数阶的代码循环n次后,那么它的时间复杂度就是 n ∗ O ( l o g 2 n ) n*O(log2n) nO(log2n),也就是 O ( n l o g 2 n ) O(nlog2n) O(nlog2n)
    @Test
    public void test5(){
        int n = 1024;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j *= 2) {
                System.out.println(j);
            }
        }
    }
    
    5、平方阶:外层循环执行一次,内层循环就要执行n次,所以外层执行n次,那么总的需要执行n*n次,因此时间复杂度为 O ( n 2 ) O(n^2) O(n2)
    @Test
    public void test6(){
        int n = 10;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                System.out.println(j);
            }
        }
    }
    
    6、指数阶 O ( 2 n ) O(2^n) O(2n):当n为9的时候,需要执行 2 9 2^9 29次。
    7、阶乘阶 O ( n ! ) O(n!) O(n!):当n为10的时候,需要执行 10 ∗ 9 ∗ 8 ∗ 7... ∗ 2 ∗ 1 10*9*8*7...*2*1 10987...21次。
    执行次数函数举例非正式术语
    12 12 12O( 1 1 1)常数阶
    2 n + 3 2n+3 2n+3 O ( n ) O(n) O(n)线性阶
    3 n 2 + 2 n + 1 3n^2+2n+1 3n2+2n+1 O ( n 2 ) O(n^2) O(n2)平方阶
    5 l o g 2 n + 20 5log2^n+20 5log2n+20 O ( l o g n ) O(logn) O(logn)对数阶
    2 n + 3 n l o g 2 n + 19 2n+3nlog2^n+19 2n+3nlog2n+19 O ( n l o g n ) O(nlogn) O(nlogn)线性对数阶
    6 n 3 + 2 n 2 + 3 n + 4 6n^3+2n^2+3n+4 6n3+2n2+3n+4 O ( n 3 ) O(n^3) O(n3)立方阶
    2 n 2^n 2n O ( 2 n ) O(2^n) O(2n)指数阶
    注意:经常将 l o g 2 n log2^n log2n(以 2 为底的对数)简写成 l o g n logn logn
    常见时间复杂度之间的关系:所消耗的时间从小到大
    O ( 1 ) < O ( l o g n ) < O ( n ) < O ( n l o g n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) < O ( n n ) O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n) O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)

    4、空间复杂度

    一个程序的空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需要的内存多少有个预先估计。一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。程序执行时所需存储空间包括以下两部分:
    • 固定部分。这部分空间的大小与输入、输出的数据的个数多少、数值无关。主要包括指令空间(即代码空间)、数据空间(常量、简单变量)等所占的空间。这部分属于静态空间。
    • 可变空间,这部分空间的主要包括动态分配的空间,以及递归栈所需的空间等。 这部分的空间大小与算法有关。
    例如:要判断某年是不是闰年,你可能会花一点心思来写一个算法,每给一个年份,就可以通过这个算法计算得到是否闰年的结果。 另外一种方法是,事先建立一个有2050个元素的数组,然后把所有的年份按下标的数字应,如果是闰年,则此数组元素的值是1,如果不是元素的值则为0。这样,所谓的判断某一年是否为闰年就变成了查找这个数组某一个元素的值的问题。第一种方法相比起第二种来说很明显非常节省空间,但每一次查询都需要经过一系列的计算才能知道是否为闰年。第二种方法虽然需要在内存里存储2050个元素的数组,但是每次查询只需要一次索引判断即可。这就是通过一笔空间上的开销来换取计算时间开销的小技巧。到底哪一种方法好?其实还是要看你用在什么地方。
    一个算法所需的存储空间用f(n)表示:S(n)=O(f(n))其中n为问题的规模,S(n)表示空间复杂度。
    通常,我们都是用“时间复杂度”来指运行时间的需求,是用“空间复杂度”指空间需求。当直接要让我们求“复杂度”时,通常指的是时间复杂度。显然对时间复杂度的追求更是属于算法的潮流!
    展开全文
  • 1.数据结构的实质: –数据结构就是关系,就是数据元素相互之间存在的一种或多种特定关系的集合。 (1).集合结构 (2).线性结构 (3).树形结构 2.物理结构 物理结构:根据物理结构的定义...

    1.数据结构的实质:


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

    (2).线性结构

    (3).树形结构

    2.物理结构
    物理结构:根据物理结构的定义,我们实际上研究的的就是如何把数据元素存储到计算机的存储器中。
    存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。
    数据元素的存储结构形式有两种:顺序存储和链式存储。
    (1) 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
    2 链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

    展开全文
  • 四川大学计算机学院游洪跃老师数据结构与算法分析课程的平时作业习题1-绪论.rar (含编程题源代码) 都是自己非常认真完成的,每一个要点都实现到位,程序全部跑通且符合要求。 最后得到的分数也很好
  • 数据结构与算法C语言版—绪论

    千次阅读 多人点赞 2019-06-17 15:26:59
    2、数据元素(data element):数据的基本单位,也称结点(node)或记录(record) 3、数据项(data item):有独立含义的数据最小单位,也称域(field) 三者之间的关系:数据 > 数据元素 > 数据项 例...
  • 文章目录数据结构与算法---绪论问题求解农夫过河什么是数据结构数据结构的逻辑组织 数据结构与算法绪论 问题求解 编写计算机程序的目的? —解决实际的应用问题 问题抽象 —分析和抽象任务需求,建立问题模型 ...
  • 研究算法数据结构的意义 解决问题的整体感 控制问题复杂度,利用抽象保持“整体感” 不陷入过多的细节 与算法相联系的数据保持一致性 数据抽象:ADT(Abstract Data Type) 对数据处理的逻辑描述,不
  • ✍、王道数据结构与算法绪论(一)
  • 程序设计 == 数据结构 + 算法; 数据:是描述客观事物的符号,能够被计算机识别并处理; 数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也称为记录(有点类似于对象); 数据...
  • 数据结构与算法 数据结构与C语言 第1章 绪论(共56页).ppt 数据结构与算法 数据结构与C语言 第2章 线性表(共172页).ppt 数据结构与算法 数据结构与C语言 第3章 栈和队列(共150页).ppt 数据结构与算法 数据结构...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,444
精华内容 2,577
关键字:

数据结构与算法绪论

数据结构 订阅