自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 7.3 Prim 算法与 Dijkstra 算法

(MST)——即树中某个点到任何其他点的距离都是最短的。例如,构建地图应用时查找自己的坐标离某个地标的最短距离。可以用于有向图,但是。Prim算法通过贪婪来选择最小的边,而Prim的每个子树都是最小生成树说明满足线性规划的两个条件。Dijkstra算法通过线性规划缓存了最优子路径的解,每一步也通过贪婪算法来选择最小的边。——即树中所有边的权值之和最小。例如,构建电路板,使所有边的和花费最少。(Bellman-Ford可以处理负权值)。

2023-06-03 16:15:06 170

原创 6.2: 哈夫曼树

作为 n 个叶子节点,构造一棵二叉树,若该树的带权路径长度(Weighted Path Length of Tree)达到最小, 称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。通路中分支的数目称为路径长度。3、树的带权路径长度:树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPL(weighted path length) ,权值越大的结点离根结点越近的二叉树才是最优二叉树。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。

2023-05-15 22:58:11 39

原创 6.1: 二叉树的构建与遍历

二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左孩子树和右孩子树组成的非空树;二叉树的存储方式即可以选择顺序存储,也可以选择链式存储,但考虑到内存占用的问题,大多数情况下我们都采用链式存储,此处我们也采用链式存储进行树的遍历。二叉树是由m(m>=0)个节点组成的有限集合,二叉树一个节点的子节点应该为n(n<=2),并且二叉树严格区分左孩子和右孩子。1、先序遍历(即按照根节点,左孩子树,右孩子树的顺序遍历)2、中序遍历(即按照左孩子树,根节点,右孩子树的顺序遍历)

2023-05-02 10:08:57 48

原创 3.6: 链队列

先进先出(First In First Out)的线性表,先进入的元素出队,后进入的元素才能出队。链队列:使用链表实现的队列;具有队头指针和队尾指针,指示队列元素所在的位置。相比普通的队列,元素出队时无需移动大量元素,只需移动头指针。队列:只允许在一端进行插入,在另一端进行删除的线性表。可动态分配空间,不需要预先分配大量存储空间。需要为表中的逻辑关系增加额外的存储空间。插入、删除时的时间复杂度为O(1)。只能队尾插入元素、在队头删除元素。读取时的时间复杂度为O(1)。适合处理用户排队等待的情况。

2023-04-23 21:30:49 37

原创 3.2: 栈的应用 -- 括号匹配

3.2、如果栈不为空,弹出栈顶元素,将栈顶元素和该右半括号进行比较,小括号匹配小括号,如果匹配失败,结束。4、全部匹配完以后,判断栈是否为空,如果栈不为空,说明还有未匹配的左半括号,如果栈为空,说明括号匹配成功。3.1、如果栈空(没有栈顶元素),则匹配失败,3、如果扫描到右半括号,就将其和栈顶元素进行对比,2、如果出现左半括号,就将其压入栈中,1、首先从左往右扫描各个括号。

2023-04-23 20:50:56 22

原创 汉诺塔问题打印地址

在数学及程序设计方法学中为递归下的定义是这样的:若一个对象部分包含地包含它自己,或用它自己来定义它自己,则称这个对象是递归的;若一个过程直接或间接的调用自己,则称这个过程为递归的过程。所谓“自顶向下”,即是把一个抽象的,困难的大问题分解为若干个小问题,如果认为小问题仍然不够简单可行,就再进一步分解,直到每一个小问题都简单易解。而所谓“逐步求精”,则是对上述分解问题的过程进行完善和优化,做到把大问题合理而全面地分解,小问题简单而可行地解决。比如类的名字、方法的名字和变量 的名字等等,都是。

2023-04-23 20:22:38 69

原创 3.5汉诺塔问题

即使是每微秒移动一次, 也需要5000世纪的时间, 可能到那个时候,世界也许真的将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。这是一个非常经典的递归问题。

2023-04-18 23:09:14 17

原创 2.5 多项式的加法

构建一个多项式就是输入每一个单项式的系数和次数,等到所有的单项式都输入完毕,多项式就构建好了。但是单项式一个一个输入比较麻烦,可以一口气全部输入完,最后输入一个结束标志表示所有的单项式都输入完了,停止多项式的构建。每个单项式含有两个数据,那就将输入的这一串数字每两个写入一个Node中,如果读取到的两个数字跟结束标志相符,则说明多项式构建好了。由于写入多项式的前提是已知所有单项式的系数和次数,只要把不是次数和系数的组合的两个数作为结束标志就可以了。时,对分别两项次方数进行比较,然后。

2023-04-07 21:11:02 25

原创 2.4 静态链表

使用静态链表存储数据,数据全部存储在数组中(和顺序表一样),但存储位置是随机的,数据之间"一对一"的逻辑关系通过一个整形变量(称为"游标",和指针功能类似)维持(和链表类似)。( static linked list ), 就是用数组来表示链表,用数组元素的下标来模拟链表的指针.由于是利用数组来定义的链表,属于静态储存分配, 因而叫做静态链表.

2023-04-07 19:59:39 47 1

原创 2.2单链表

单链表通过一组任意的存储单元来存储线性表中的数据元素,不需要使用地址连续的存储单元,因此它不要求在逻辑上相邻的两个元素在物理位置上也相邻。算法思想:首先初始化一个单链表,然后声明一个尾指针r,让r始终指向当前链表的尾结点,循环向单链表的尾部插入新的结点*s,将尾指针r的next域指向新结点,再修改尾指针r指向新结点,也就是当前链表的尾结点。算法思想:首先初始化一个单链表,其头结点为空,然后循环插入新结点*s:将s的next指向头 结点的下一个结点,然后将头结点的next指向s。

2023-04-02 17:18:47 17

原创 数据结构邂逅收获

在第一次课程中,我初步接触到了数据结构,了解到数据结构的研究内容,基本概念和术语。在读书过程中,老师引导我们理解其中的内容,发现疑问,提出问题,并为我们解答,让我收获很多。在这个过程中寻找数学模型的本质就是分析问题,将操作对象从中提取出来,并且找到这些操作对象之间的关系,并且用数学语言进行描述(利用所学的数学知识及算法建立相应的方程)。(1)数据:是客观事物的符号表示,是所有能输入计算机并被计算机程序处理的符号的总称。(4)数据对象:性质相同的数据元素的集合,是数据的一个子集。从具体问题中抽象出数据模型。

2023-03-25 11:05:04 44

原创 2.1顺序表

抄写代码如下:/***//***/i ++)/***//***/i ++)/***/return;}//Of ifreturn;}//Of ifreturn;}//Of ifi --)/***/int i;

2023-03-25 10:56:53 28 1

AVIWriter.cs

AVIWriter.cs

2023-03-25

空空如也

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

TA关注的人

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