
《数据结构》学习记录
文章平均质量分 56
保持耐心
友善啊,朋友
这个作者很懒,什么都没留下…
展开
-
《数据结构》学习记录(14):最小生成树
一、概念1、生成树一个连通图的生成树是一个极小连通子图,它含有图中全部n个顶点和构成一棵树的n-1条边。2、最小生成树对于带权连通图G (每条边上的权均为大于零的实数),可能有多棵不同生成树。每棵生成树的所有边的权值之和可能不同。其中权值之和最小的生成树称为图的最小生成树。3、连通图的生成树连通图仅需调用遍历过程(DFS或BFS)一次,从图中任一顶点出发,便可以遍历图中的各个顶点,产生相应的生成树。 4、非连通图的生成树需多次调用遍历..原创 2022-04-04 23:40:51 · 810 阅读 · 0 评论 -
《数据结构》学习记录(13):图的遍历
一、概念1、图的遍历从图中任意指定的顶点(称为初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶点,使每个顶点仅被访问一次。二、深度优先遍历从图中某个初始顶点v出发,首先访问初始顶点v。 选择一个与顶点v相邻且没被访问过的顶点w,再从w出发进行深度优先搜索,直到图中与当前顶点v邻接的所有顶点都被访问过为止。QMap<elementType,int> map;void DFS(AdjGraph *G,elementType v){ ma原创 2022-04-04 22:06:35 · 956 阅读 · 0 评论 -
《数据结构》学习记录(12):图的存储结构
图有多种储存结构,邻接表、邻接矩阵是常用的。一、邻接矩阵存储结构二、邻接表存储结构示例:1、定义结构#define elementType QChar#define MAXV 5//边结点struct ArcNode{ elementType advex; //终点编号 struct ArcNode * nextarc{nullptr}; //指向下一条边的指针 QJsonObje原创 2022-04-03 22:15:46 · 679 阅读 · 0 评论 -
《数据结构》学习记录(11):图的概念
1、图由顶点和边构成的结构。2、无向图边的顶点对是无序的图。用圆括号序偶表示无向边。3、有向图边的顶点对是有序的。用尖括号序偶表示有向边。4、端点、邻接点无向图的边 (i,j) 的两点顶点i和顶点j 称为端点,它们互为邻接点。5、起点、终点有向图的边 <i,j> 的顶点i为起始端点(简称为起点),顶点j为终止端点(简称终点),它们互为邻接点。6、无向图端点的度以顶点i为端点的边数称为该顶点的度。...原创 2022-04-03 17:50:45 · 3292 阅读 · 1 评论 -
《数据结构》学习记录(10):二叉树遍历
一、二叉树遍历的概念按照一定次序访问树中所有结点,并且每个结点仅被访问一次的过程。遍历是二叉树最基本的运算,是二叉树中其他运算的基础。二、 先序遍历过程:访问根结点; 先序遍历左子树; 先序遍历右子树。struct BTNode{ QChar data; BTNode * lchild{nullptr}; BTNode * rchild{nullptr};};//先序遍历(递归算法)void PreOrder(BTNode * node原创 2022-04-02 13:23:08 · 771 阅读 · 0 评论 -
《数据结构》学习记录(9):二叉树
一、概念1、二叉树的递归定义二叉树是有限的结点集合,这个集合:或者是空; 或者由一个根结点和两棵互不相交的称为左子树和右子树的二叉树组成。 2、满二叉树所有分支结点都有双分结点,并且叶结点都集中在二叉树的最下一层。3、完全二叉树最多只有下面两层的结点的度数小于2,且最下面一层的叶结点都依次排列在该层最左边的位置上。二、二叉树的顺序存储结构三、二叉树的链式存储结构四、二叉树基本运算1、定义二叉树结点st...原创 2022-03-31 00:24:32 · 399 阅读 · 0 评论 -
《数据结构》学习记录(8):树
一、概念1、树的递归定义2、结点的度树中一个结点的子树的个数。3、树的度树中各结点的度的最大值。通常将度为m的树称为m次树或者m叉树。4、分支结点(非终端结点)度不为零的结点。5、n分支结点度为1的结点称为单分支结点;度为2的结点称为双分支结点,依此类推,度为n的结点称为n分支结点。6、叶结点(终端结点)度为零的结点。7、路径两个结点间的结点序列。8、路径长度等于路径所通过的结点数目减1(即路径上分支数原创 2022-03-29 12:27:38 · 1815 阅读 · 0 评论 -
《数据结构》学习记录(7):顺序队列
一、概念1、队列一种“先进先出”的线性表。二、顺序队列的基本操作1、定义队列#define elemType charconst int MaxSize = 5;struct SqQueue{ elemType data[MaxSize]; int front,rear; //队首和队尾指针};2、初始化队列void InitQueue(SqQueue *&q){ q = new SqQueue;原创 2022-03-27 22:51:37 · 1173 阅读 · 0 评论 -
《数据结构》学习记录(6):链栈
一、概念1、链栈采用链表存储的栈。二、链栈的基本操作1、定义链栈#define elemType charstruct LinkStNode{ elemType data; //数据域 LinkStNode *next; //指针域};2、初始化链栈void InitStack(LinkStNode *&s){ s = new LinkStNode; s->next = nullptr;原创 2022-03-27 21:18:31 · 2261 阅读 · 0 评论 -
《数据结构》学习记录(5):顺序栈
一、概念1、栈一种只能在一端进行插入或删除操作的线性表。栈的主要特点是“后进先出”,即后进栈的元素先出栈。2、栈的几个概念允许进行插入、删除操作的一端称为栈顶。 另一端称为栈底。 当栈中没有数据元素时,称为空栈。 栈的插入操作通常称为进栈或入栈。 栈的删除操作通常称为退栈或出栈。3、顺序栈利用顺序存储结构实现的栈。二、顺序栈的基本操作1、定义栈#define elemType charconst int MaxSize = 5;struct.原创 2022-03-27 20:41:05 · 1622 阅读 · 0 评论 -
《数据结构》学习记录(4):单链表和双链表的基本操作
一、单链表基本操作1、定义单链表结点类型#define elemType charstruct LinkNode { elemType data; LinkNode *next; //指向后继结点};2、创建单链表头插法建表:创建头结点,新结点插入到当前链表的表头。void CreateListF(LinkNode *&L, elemType a[], int n){ L = new LinkNode原创 2022-03-26 14:23:44 · 1538 阅读 · 0 评论 -
《数据结构》学习记录(3):顺序表
一、概念1、线性表具有相同特性的数据元素的有限序列。相同特性:所有元素属于同一数据类型。 有限:数据元素个数是有限的。 序列:数据元素由逻辑序号唯一确定。2、顺序表按逻辑顺序将线性表内容依次存储到一片连续的存储空间中。二、顺序表的基本操作1、定义顺序表#define ElemType charconst int MaxSize = 20;struct SqList{ ElemType data[MaxSize]; int length;原创 2022-03-24 13:05:35 · 1396 阅读 · 0 评论 -
《数据结构》学习记录(2):算法分析
一、相关概念1、算法分析实际上就是分析算法占用的资源。目的:分析算法的时空效率以便改进算法性能。包括:时间性能分析:分析算法占用的CPU时间。 空间性能分析:分析算法占用的内存空间。2、原操作指固有数据类型的操作,如+、-、*、/、++和--等。3、时间复杂度一个算法是由控制结构(顺序、分支和循环三种)和原操作构成的。算法执行时间取决于两者的综合效果。4、空间复杂度用于量度一个算法在运行过程中临时占用的存储空间大小。二、时间性能分析的方法原创 2022-03-23 22:02:09 · 1758 阅读 · 0 评论 -
《数据结构》学习记录(1):绪论
一、概念1、数据所有能够输入到计算机中,且能被计算机处理的符号的集合。计算机中的各种文件都是数据。而数据结构中主要讨论结构化数据。2、结构化数据即具有某种规则的数据。例如一个学生表:3、数据元素是数据(集合)中的一个“个体”,它是数据的基本单位。如上表中一条记录就是一个数据元素。4、数据项数据的最新单元。如上表中每个单元格中的内容都是一个数据项。5、数据对象相同特性数据元素的集合,是数据的一个子集。如上表中两条记录就构成一个数原创 2022-03-23 12:13:27 · 1237 阅读 · 0 评论