数据结构学习笔记
本栏文章中,图片均引用自浙大、西邮MOOC数据结构课程
派大星是个小码农
这个作者很懒,什么都没留下…
展开
-
数据结构学习—图的遍历
深度优先搜索(DFS)深度优先搜索 基本思想:从图中某个顶点v0v_0v0出发,首先访问v0v_0v0;找出刚访问过的顶点的第一个未被访问的邻接点,然后访问该顶点。以该顶点为新顶点,重复此步骤,直到刚访问过的顶点没有 未被访问过 的邻接点为止;访问前一个访问过的且仍有未被访问的临界二店的顶点,找出该顶点的下一个未被访问的邻接点,访问该顶点,然后执行2;若是非连通图,则图中一定还有顶...原创 2020-04-09 21:56:49 · 146 阅读 · 0 评论 -
数据结构学习—图
图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。关于图的各种定义无向边:若顶点 viv_{i}vi到vjv_{j}vj之间的边没有方向,则称这条边为无向边(Edge)。无向图:若图中任意两个顶点之间的边都是无向边,则称该图为无向图。如果任意两个顶点都存在边,则称该图为无向完全...原创 2020-04-09 19:50:23 · 441 阅读 · 1 评论 -
判断是否为同一颗二叉搜索树
方法:建一颗树,在判别其他序列是否与该树一致判别方法#include <stdio.h>#include<stdlib.h>typedef struct TreeNode *Tree; //表示二叉搜索树树struct TreeNode{ int v; Tree Left,Right; int flag; //某个节点被访问过flag=...原创 2020-04-01 18:44:37 · 264 阅读 · 0 评论 -
数据结构学习—树(2)
二叉搜索树(Binary Search Tree)1.非空左子树的所有键值小于其根节点的键值2.非空右子树的所有键值大于其根节点的键值3.左右子树都是二叉搜索树二叉搜索树的删除要删除的是叶节点:直接删除,并再修改其父节点指针—置为NULL要删除的节点只有一个孩子节点:将其父节点的指针指向要删除节点的孩子节点要删除的节点有左、右两颗子树:右子树最小元素或左子树最大元素替...原创 2020-04-01 18:20:59 · 251 阅读 · 0 评论 -
数据结构学习—树(1)
树的定义树(tree):n个节点构成的有点集合。当n=0时,称为空树;对于任一颗非空树(n>0),具有以下性质树种有一个称为根的特殊节点,用r表示;其余节点可分为m(m>0)个互不相交的有限集T1…TM,其中每个集合本身又是一棵树,称为原来树的子树(Subtree)子树是不相交的;除了根节点外,每个节点有且仅有一个父节点;一颗N个节点的树有N-1个条边。树的一...原创 2020-03-30 22:05:20 · 447 阅读 · 0 评论 -
数据结构学习—队列
队列概念队列是限定仅在表的一端进行插入,而在另一端进行删除操作的线性表。允许插入的一端称为队尾,另一端称为队头。队列的修改是按先进先出的原则进行的,又称为先进先出表(FIFO)。线性队列基本运算#include <stdio.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MA...原创 2020-03-26 21:29:47 · 385 阅读 · 0 评论 -
数据结构学习—栈
栈的定义限定在表尾作插入、删除操作的线性表,表中允许进行插入、删除操作的一端称为栈顶(Top),表的另一端称为栈底(Bottom)。顺序栈用顺序存储结构实现的栈,即利用一组地址连续的存储单元一次存放自栈底到栈顶的数据元素,同时由于栈的操作的特殊性,还必须设一个位置指针top(栈顶指针)来动态的指示栈顶元素在顺序栈中的位置。(通常以top=-1表示空栈)//静态分配typedef ...原创 2020-03-26 20:41:30 · 117 阅读 · 0 评论 -
数据结构学习—线性表
线性表线性表的概念定义线性表是由n(n>=0)个类型相同的数据元素组成的有限序列,数据元素之间是一对一的关系,即每个数据元素最多有一个直接前驱和一个直接后驱。特点:同一性:线性表必须由同类数据元素组成有穷性:线性表由有限个数据元素组成,表长就是表中数据元素个数有序性:线性表中相邻元素之间存在着序偶关系。线性表的顺序存储定义是指用一组地址连续的存储单元依次线性表...原创 2020-03-21 11:56:22 · 187 阅读 · 0 评论