自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 C语言-图的表示与实现

在图的邻接矩阵表示法中,用一个一维数组来存储图中每个顶点的信息,用一个二维数组来存储图中边或弧的信息,这个二维数组称为邻接矩阵。其中,VertexType是顶点的类型,ArcTypc是边的类型。邻接表存储结构的空间开销取决与图的顶点数n和边数e,空间复杂度为O(n+e)。(1)顶点vi的边链表是一条出边链,链表中每个结点都是v的出边邻接点;(4)顶点i的出度于第i行非0元的个数,入度等于第i列非0元的个数。的单链表连接起来,边链表中的结点叫做边结点。(1)每条边有两个边结点,边结点的总数等于2e;

2024-02-08 19:55:50 767

原创 C++-STL容器之vector

C++标准模板库(STL)中的是vector一种序列容器,它封装了能够存储任意类型(例如整数、字符串等)的动态大小数组。使用vector,你可以快速地在序列的末尾添加或移除元素,并且能够随机访问序列中的任何元素。下面我将详细介绍vector的特性、常用操作以及使用时的注意事项。

2024-02-07 23:25:55 1455 1

原创 C语言-二叉树的性质、创建与四种遍历方式

本文从二叉树的定义讲起,先简要介绍了一下二叉树的一些性质,在说明了二叉树的创建和先、中、后序遍历,其中遍历介绍了递归和非递归版本(统一迭代法)

2024-02-05 22:05:44 1793

原创 C语言-线索二叉树

应当指出,这种利用二叉链表中的空指针实现的线索二叉树,仅中序线索二叉树最实用,因为在中序线索的指引下,找每个结点的中序前驱和中序后继都比较方便。所以,若要建立先序线索二叉树和后序线索二叉树,建议对于每个节点T,多使用两个指针prior和next,其中prior指向T的某序前驱,next指向T的某序后驱。设指针T指向当前访问的结点,为了记下结点的前驱、后继关系,设置一个初值为NULL 的全局指针变量 pre,令 pre始终指向当前访问结点T的直接前驱,即pre是T的中序前驱,T是pre的中序后继。

2024-02-05 20:11:59 1226

原创 C语言-AVL树

当插入节点在“外侧”时(即左-左或右-右的情况),进行所谓的单旋转操作。在保留二叉搜索树特性的同时,又加上了平衡条件,即每个节点的左右子树的高度最多差1。《数据结构与算法分析》一书中认为AVL树的删除操作较为复杂,更加推荐使用懒惰删除,即保留节点在树中,但是加以标记。不过值得注意的是,代码中的Height函数单独出来写是有必要的,因为我们要处理空树的情况。总体上插入函数的思路与二叉搜索树的插入函数思路相似,不过多了对树高导致不平衡的条件的讨论。在有了以上对旋转的讨论之后,完成节点的插入操作就不再是难事。

2024-02-02 15:46:24 770 2

原创 C语言-二叉搜索树的常用操作和复杂度分析

对于频繁使用删除操作的二叉搜索树,上述假设并不成立,因为我们对有两个子节点的节点删除策略是使用右子树的最小节点代替,可能导致假设中的等可能性出现问题。(3)有两个子节点:一般的删除策略是用其右子树的最小的数据代替该节点的值,并继续递归调用delete函数将那个右子树最小数据节点删除。(1).最好情况分析:假设有N个节点排成完全二叉树,则树的高度为是[log2(N)]+1,时间复杂度为O(logN)级别;一个二叉树,对于每一个节点X均满足X的左子节点的值比X小,右子节点的值比X大,这种树称为二叉搜索树。

2024-01-31 14:10:14 840 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除