数据结构与算法
文章平均质量分 77
学习数据结构与算法,提高自己能力
雷军的小宝贝
越努力越幸运
展开
-
学《数据结构》越学越聪明--第七章》》》树和二叉树2
二叉树的概念二叉树的定义二叉树是有限的结点集合。这个集合或者是空或者由一个根节点和两颗互不相交的称为左子树和右子树的二叉树组成二叉树的五种基本形态:空树只有根结点左子树为空树右子树为空树左右子树不为空树特殊的二叉树满二叉树所有分支结点都有双分支结点;且叶结点都集中在二叉树的最下层。完全二叉树最多只有下面两层的结点的度数小于2且最下面一层的结点依次排列在最左侧的位置上...原创 2022-02-12 19:07:26 · 738 阅读 · 0 评论 -
学《数据结构》越学越聪明--第七章》》》树和二叉树1
树树的概念树的定义树形式化定义:T={D,R}。D是包含n个节点的有限集合(你>=0)。当n=0时为空树,否则关系R满足以下条件:有且仅有一个节点d0∈D,它对于关系R来说没用前趋节点,节点d0称作树的根节点除根节点外,每个节点有且仅有一个前趋节点D中每个节点可以有零个或多个后继节点树的递归定义:树是由n(n>=0)个节点组成的有限集合(记为T)。其中:如果n=0,它是一棵空树,这是树的特例如果n>0,其中存在一个唯一节点作为树的根节点(root),其余节点可分为原创 2022-02-10 12:15:37 · 702 阅读 · 0 评论 -
学《数据结构》越学越聪明--第六章》》》数组与广义表一、数组
数组 数组的概念 从逻辑结构上看,一维数组A是n(n>1)个相同类型数据元素a1、a2、......、An构成的有限序列,其逻辑表示为: 从A=(a1、a2、....、An) 其中,a1(1=一个m行m列的二维数组A可以看作是每个数据元素都是相同类型的一维数组的一维数组。由此看出,多维数组是线性表的推广数组的抽象数据类型+运算描述数组的基本运算如下:Value(A,index1,index2,.....,indexD)即A(index,index2,...,ind..原创 2022-01-07 18:56:26 · 741 阅读 · 0 评论 -
学《数据结构》越学越聪明--第四章》》》串
串 串的基本概念串(或字符串)是由零个或多个字符组成的有限序列串中所含字符的个数称为该串的长度(或串长),含零个字符的串称为空串。相等串当且仅当两个串的长度相等并且各个对应位置上的字符串都相同时,这两个串才是相等的子串一个串中任意个连续字符组成的子序列(含空串)称为该串的子串。真子串是不包含自身的所以子串串抽象数据类型=逻辑结构+基本运算串的几种基本运算如下:StrAssign(&s,cstr):将字符串常量cstr赋给串s,即生成其值等于cstr的串sStrC..原创 2021-12-20 19:39:21 · 1235 阅读 · 0 评论 -
学《数据结构》越学越聪明--第三章》》》栈和队列 总结
总结栈栈是一种只能从一端插入的线性表,先进后出表1,2,3,---,n通过一个栈的出栈序列个数?一个大小为n的顺序栈,最多只能进行n次进栈操作嘛?顺序栈只能将栈底设置在data[0]端吗?共享栈队列先进先出表 1,2,3,---,n通过一个队列的出队序列个数?环形队列解决了假溢出问题,任何情况下都使用环形队列吗?如果需要多个队列,可以像共享栈一样设置共享队列吗?如果需要使用10给队列,如何设计?栈和队列的应用...原创 2021-12-15 18:53:23 · 1255 阅读 · 1 评论 -
学《数据结构》越学越聪明--第三章》》》栈和队列(二)队列
队列队列的定义栈是一种只能从一端插入的线性表。队列只能选取一端进行插入操作,另一个端点进行删除操作队列的概念插入的一端称为队尾(rear)删除的一端称为队头或队首(front)向队列中插入新的元素称为进对或入队,新元素进队后成为新的队尾元素。向队列中删除元素称为出队或离队,元素出队后其后继结点称为新的队首元素队列的特点是先进先出,又把队列称为“先进先出表”抽象数据类型=逻辑结构+基本运算(运算描述)栈的几种基本运算如下:InitQueue(&q)初始化队列。构造一个原创 2021-12-14 20:05:59 · 743 阅读 · 0 评论 -
学《数据结构》越学越聪明--第三章》》》栈和队列(一) 栈
栈栈的概述栈是一种只能从一端插入的线性表只能在同一个端进行插入和删除栈的几个概念允许插入和删除的一端称为栈顶另一端称为栈底栈中没有元素时称为空栈栈的插入操作通常称为进栈或入栈栈的删除操作通常称为出栈或退栈栈的特点:栈的主要特点是后进先出即后进栈的元素先出栈。栈也被称为后进先出表设一个栈的输入序列为a,b,c,d,则借助一个栈所得到的输出序列不可能是_D__A,c,d,b,a B,d,c,b,a &nbs原创 2021-12-12 20:56:04 · 1529 阅读 · 0 评论 -
学《数据结构》越学越聪明--第二章》》》线性表之链表(单)
线性表的链式存储结构链表的概述结点不仅包含本身的信息还包含元素之间逻辑关系的信息在链表存储结构中每个结点用于存储线性表的一个元素,每个结点不仅包含所存元素本身的信息,而且包含元素之间逻辑关系的信息,即前驱结点包含后继结点的地址信息,称为指针域链表中数据元素可以存储在内存中被占用的任意位置链表由多个结点组成,这些结点在地址上可以是连续的,也可以不连续。头指针链表中的一个结点的存储位置称为头指针,如果链表带有头结点,那么头指针为头结点的地址,如果链表不带头结点,头指针为开始结点的地址。通常用头指针来标原创 2021-11-17 17:11:51 · 562 阅读 · 0 评论 -
学《数据结构》越学越聪明--第二章》》》线性表之顺序表
顺序表把线性表中的所有元素按照其逻辑顺序,依次存储到从计算机存储器中指定存储位置开始的一块连续的存储空间中特点:不增加存储逻辑关系的空间开销,方便存储无需为表示元素之间的逻辑关系而增加额外的存储空间,可以方便存储表中的任意一个元素占用大片连续空间,插入和删除时复杂顺序表要求占用一整片连续的空间,而且插入和删除元素时需要移动大量的元素顺序表的基本运算实现一旦采用顺序表存储结构就可以利用c/c++语言实现线性表的各种基本运算。为了单,假设顺序表ElemType为int类型:typedef in原创 2021-11-16 16:04:45 · 599 阅读 · 0 评论 -
学《数据结构》越学越聪明--第二章》》》线性表
线性表线性结构的概念:元素之间的关系:元素之间存在一对一的关系特点:开始元素和后继元素都是唯一的,除此之外其余元素都有且仅有一个前驱元素和后继元素线性表的概念:线性表是一个具有相同特性的数据元素的有限序列特性:一致性:一个线性表中所有数据元素之间的性质相同有穷性:一个线性表中的元素是有限的序列性:一个线性表中所有元素之间的位置是线性的线性表所含元素的个数叫做线性表的长度,用n表示,当n=0时,表示线性表是一个空表,不包含任何元素线性表是客观事物的抽象线性表的存储结构:有顺序原创 2021-11-14 22:32:10 · 862 阅读 · 0 评论 -
绪论简答题
绪论练习题算法的时间复杂度取决于?答:问题规模和待处理数据的初态计算机算法指的是解决问题的步骤序列,它必须具备哪三种特性?答:确定性、可执行性、有穷性从逻辑结构上可以将数据结构分为哪两大类?答:线性结构和非线性结构对给定的n个元素,可以构造出的逻辑结构有哪些?答:集合、线性结构、树形结构、图形结构数据结构中评价算法的两个重要指标是?答:算法的时间复杂度和空间复杂度数据结构是研讨数据的什么?以及他们之间安定相互关系,并且与这种结构定义相应的什么?设计出相应的什么?答:逻辑结原创 2021-10-27 13:41:02 · 1528 阅读 · 0 评论 -
学《数据结构》越学越聪明--第一章》》》绪论三
算法分析算法分析就是分析算法占用计算机资源的多少CPU时间–>时间性能分析内存空间–>空间性能分析目的:分析算法的时空效率以便改进算法性能算法分析方式:事后统计法:编写相对应程序,统计其执行时间事前统计法:撇开上述因素,认为算法的执行时间是问题规模n的函数 算法时间复杂度分析 一个算法是控制结构(顺序、分支、循环三种)和原操作(指固有数据类型的操作,比如++、--、*、/、+、-等)构成的。 在以下算法中,语句1、3、5、6就是原操作:void fun(int a原创 2021-10-14 18:30:47 · 149 阅读 · 0 评论 -
学《数据结构》越学越聪明--第一章》》》绪论二
算法及其描述1.2.1什么是算法对特定问题求解的一种描述,它是指令的有限序列算法的重要性有穷性:在有穷步之后结束,算法能够停机确定性:无二义性可行性:可通过基本运算有限次执行来实现,也就是算法中每一个动作能够被机械地执行。有输出:有数据处理有输入:有数据处理通过把基于存储结构的运算实现的步骤或过程称为算法。运算功能描述---->>>基于存储结构--->>>运算功能实现==算法算法设计目标确定性:要求算法能够正确地执行预先规定的功能和性能要求。原创 2021-10-12 15:59:08 · 132 阅读 · 0 评论 -
学《数据结构》越学越聪明--第一章》》》绪论一
绪论一1.1 什么是数据结构1.1.1数据结构的定义首先,我们了解用计算机解决一个具体问题有哪几个步骤:分析问题,解决数据模型设计相应的算法编写程序,运行并调试程序,直至得到正确的结果寻求数据模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间的关系,然后用数字语言加以描述。数据:描述客观事物的符号,是计算机中可以操作的对象数据元素:组成数据的基本单位,是数据结构的聚焦点数据项:数据不可分割的最小单位,一个数据元素可以由多个数据项组成数据对象:性质相同的数据元素的集合原创 2021-10-12 10:50:20 · 129 阅读 · 0 评论