- 博客(15)
- 收藏
- 关注
原创 kruskal算法
最小生成树:在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树。 Kruskal算法,是用来求加权连通图的最小生成树的算法。 基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-1条边不构成回路。 方法:首先构造一个只含n个顶点的森林,然后依权值从小到大从连通网中选择边加入到森林中,并使森林中不产生...
2019-12-02 21:50:05 168
原创 prim算法
之前学习的Prim算法,是用来求加权连通图的最小生成树的算法。 对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。 从所有uЄU,vЄ(V-U) (V-U表示出去U的所有顶点)的边中选取权值最小的边(u, v),将顶点v加入集合U中,将边(u, v)加入集合T中,如此不断重复,直到U=V为止,最小生成树构造完毕,这时...
2019-12-02 16:00:45 159
原创 哈夫曼树
哈夫曼树是最优二叉树。 给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。 路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。 结点的权及带权路径长度 若将树中结点赋给一个有着某种含义的数值,则这个数值称为...
2019-11-25 21:29:51 162
原创 树
之前我们也学习了树,树是n个结点的有限集合,当n=0时,称这棵树为空树。非空树有以下特征: 有且仅有一个称为根的结点。 如果n>1, 除根结点以外其它结点可以分为m(m>0)个不相交的集合T1,T2,T3,T4,......,Tm,其中每一个集合都是一棵树。树T1, T2, T3,......,Tm称为这棵对的子树。 节点:树是由有限个元素组成的集合,每个元素都称作一个节...
2019-11-06 22:08:48 117
原创 栈与队列
前面学习了线性表,而栈和队列是两种特殊的线性表,特殊之处在于插入和删除操作的位置受到了限制。 若插入和删除操作只允许在线性表的一端进行,则为栈,其特点是后进先出; 若插入和删除操作分别在线性表的两端进行,则为队列,特点是 先进先出。 栈是一种特殊的线性表,其插入和删除操作只允许在线性表的一端进行。 允许操作的一端称为 栈顶不允许操作的一端称为 栈底。栈中插入元素的操作称为入栈,删除元素的操...
2019-10-30 22:43:45 172
原创 线性表
在之前我们学习了线性表。 线性表的定义:有限的数据元素组成的有限序列。 线性表有两种存储结构:1.顺序存储结构(数组)。2.链式存储结构(链表) 1.顺序存储结构:指用一段连续的存储单元依次存储数据元素的结构。 顺序存储结构的地址计算: 因为顺序存储结构是连续的一段存储单元,那我们假设每一个存储单元的大小为‘c’ 那么可以推算出第ai个存储单元和第ai+1个存储单元的位置关系是:Loc...
2019-10-28 22:13:54 68
原创 数据结构
程序设计主要是由算法加程序构成 算法:算法是为了求解问题而给出的有限的指令序列,每条指令表示一个或多个操作。 程序:程序是算法的一种实现,计算机按照程序逐步执行算法,实现对问题的求解。 逻辑结构 逻辑结构包括线型结构,树形结构,图结构 存储结构 存储结构包括顺序存储,链式存储(借助于指针)任何逻辑结构都可以用这两种存储结构存储。 算法的性质: 1.有序性:有穷步后结束,每一步的时间有穷。 2.确定...
2019-09-22 13:19:10 87
原创 软件开发
关于软件开发 最近已经做了很多作业,也对如何设计程序有了些了解。 写程序时首先应对自己要做什么有所了解,先设计出简单的框架,程序具体需要什么类,需要什么函数,应包括什么内容,然后对自己所设计的函数逐一进行调试,确保每一个函数的作用都能正确实现,对程序调试时要对各种情况考虑完全,包括正常数据,错误数据,异常处理等。最后将它们包装起来。这样就完成对程序的设计了 ...
2019-06-23 23:15:52 102
原创 学习总结
最近又学习了很多关于程序设计的内容,主要包括:运算符重载,组合,继承,虚函数,多态,其中运算符重载的主要内容是:我们可以重新定义一个运算符,并且自己可以使用它。运算符重载后由关键字operator和后面的重载运算符组成。运算符重载以后也有一个返回值跟参数列表。 虽然很多运算符都可以重载,但是也有一些不能重载的包括.* ->* :: sizeof ?: #这些符号都是不能重载的。 而运算符重载...
2019-06-23 19:55:45 73
原创 类与对象
经过一个多月的学习,我们已经结束了类与对象的学习。 类的基本思想是数据抽象与封装,其中数据抽象是一种依赖接口和实现分离编程的技术。,在c++中扩展了结构体的概念,使之可以包含函数作为成员,这函数被称为成员函数,数据则被称为数据成员,这样的结构体被称为类这种类型的变量被称为对象。 为了解决一些数据可能未经允许被修改的情况,就要对数据进行隐藏,要对其加上访问限定符,访问限定符包括public(公有...
2019-04-14 21:46:41 82
原创 c++学习
开学已经四周了,结束了c语言的学习进入了c++,首先进行的就是符复合类型的学习,学习了一种新的数据类型:auto类型,用auto声明变量的类型,编译器自动分析表达式的类型(必须有初值) 然后是指针,指针持有一个对象的地址,称为指针指向这个对象,通过指针可以间接操纵它指向的对象。指针指向的是地址,因此数据前面要加取址符&指针值为0时表示它是一个空指针,表示空指针的方法有int *pi...
2019-03-24 11:59:15 126
原创 c语言课程总结
不知不觉,我们已经在这里学习了一个学期了,这一个学期里,我们对程序的理解也越来越深刻,我们了解了程序最基本的几种结构,学会了,各种的函数,算法。 从刚开始的顺序结构,条件结构,循环结构,到后来的函数,一维数组,二维数组,指针,还有排序的sort函数,素数的求法,最大公约数,最小公倍数的求法,二维数组的各种应用,甚至能做扫雷游戏的原理。我们知道了数据在计算机里是怎样存储的,怎样找到它的位置,怎么得...
2019-01-03 21:12:32 1121
原创 数组
在前面的学习中,我们了解了三中基本控制结构,顺序结构,条件结构,循环结构。通过它们我们可以解决很多问题了,但是生活中,如果遇到,像是老师要在电脑中输入学生的成绩,要是我们像之前那样,一个数据定义一个变量,如果人少还好说,那如果人很多呢?光是定义变量就很麻烦了吧?所以这就需要用到我们的数组了。 数组的基本形式是a[i]其中a是数组的名称,而i是数组中包含变量的个数,当你定义完像是a[100]时,计...
2018-12-22 08:23:42 115
原创 循环结构
循环结构 继顺序结构,条件结构后,第三个基础结构就是循环结构了,现实生活中,我们难免会遇到一些类似的事情要做很多次的情况,像是掷硬币连续掷多少次,一扇门不停的开关多少次......如果我们用顺序结构一条条的写的话,计算机的优势就体现不出来了,这时候我们的循环结构就派上用场了,像for型语句for(i=1;i<=n;i++)下面再加上要做的循环,就能够实现从1到n,一直做n次循环了fo...
2018-12-09 10:07:27 109
原创 程序设计总结
步入大学已经两个多月了,两个月让我从对计算机一无所知变成了一个稍微会一点点的菜鸟,那这两个月我到底学到了什么呢? 一丶顺序结构 课本上第一节讲的就是顺序结构,那按照教材的规律来看,这应该也是最简单的一节,事实也确实如此,顺序结构就是直接一串下来,头文件#include<stdio.h>包含了基本的输入(scanf)与输出(printf)语句,在输入语句中,应注意变量的格式应与之前所...
2018-11-11 10:26:18 551
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人