自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anna的博客

day day up...

  • 博客(20)
  • 资源 (3)
  • 收藏
  • 关注

原创 图的应用——最小生成树(Kruskal算法)和(Prim算法)

一、一些概念的理解:生成树:一个连通图的生成树是原图的极小连通图,它包含原图中的所有顶点,而且有尽可能少的边。也就意味着对于生成树来说,若砍去他的一条边,就会使生成树变成一个非连通图;若给他增加一条边,就会形成图中的一个回路。最小生成树:1、概念:对于一个带权的连通图(即网络),如何找出一棵生成树,使得各边上的权值总和达到最小。2、原则:(1)必须只使用该网络中的边来构

2017-02-26 19:35:07 759 2

原创 图(有向图)的应用——拓扑排序

1、基本概念:有序图,每个顶点都有前驱和后继的关系。现实生活中我们可以用一个有向图来表示一个工程,顶点表是活动,有向边A---------->B表示:A必须先于活动B进行。这种有向图叫做“  顶表示活动的网络(activity  on  vertices)”——记作AOV网络。将全部顶点都排在一个线性有序的序列中。这种构造AOV网络全部顶点的拓扑有序序列的运算就叫做拓扑排序(t

2017-02-25 18:39:58 7035

原创 图(邻接表)的遍历——DFS(深度优先搜索)和BFS(广度优先搜索)和连通图

深度优先搜索(DFS)是一个不断探查和回溯的过程。在探查的每一步,算法都有一个当前顶点。————意味着要用递归咯。最初的当前顶点就是指定的起始点。每一步探查过程中,首先对当前顶点v进行访问,并立即设置该顶点的访问标志为true,表示该顶点已经被访问过。接着在v的所有邻接顶点中找出尚未访问过的一个,将其视为下一步探查的当前顶点,直到所有顶点都被访问过。核心代码: void DFS

2017-02-25 17:59:43 13040

原创 C注释转化为C++注释(状态机模型)

一、题目描述:   请编写注释转化程序,实现对一个C/C++语言程序源文件中注释转换功能。二、要求:1、C++风格的注释://注释 =======》C风格注释:/*  */注释2、/*  */注释,保持原样不变3、所有的转换需要符合语法规则4、注释转换需要支持注释嵌套三、状态机模型:1、确定测试用例:2、注意:(1)除以下两种情况的修改,

2017-02-25 17:34:25 388

原创 引用计数——解决深拷贝浅拷贝的冲突

下面是用代码实现:private: char *data; size_t use_count;public: //构造函数 String_rep(const char *str = ""):use_count(0) { if(str == NULL) { data = new char[1]; data[0] = '\0'; } else {

2017-02-19 18:36:43 332

原创 数据结构(C++)——图(邻接表)

一、改进原因:以邻接矩阵的形式存储图结构,当e远远小于n^2时,大量的元素都是0。显然,这么多的0元素肯定会造成存储空间的巨大浪费。所以我们将邻接矩阵改进为邻接表。为此,需要把邻接矩阵的各行分别组织为一个单链表。如图:代码:#include"AllHead.h"#define MAXSIZE 10class EdgeNode;templateclass Gra

2017-02-19 15:23:07 649

原创 数据结构(C++)—— 图(邻接矩阵)

一、重要概念理解:完全图(Complate  graph)在由n个顶点组成的无向图中,若有n*(n-1) / 2条边,则称之为无向完全图。在由n个顶点组成的有向图中,若有n*(n-1) 条边,则称之为有向完全图。完全图中的边数达到最大。权(weight)在某些图中,边具有与之相关的数值,称为权重。权重可以表示从一个顶点到另一个顶点的距离,花费的代价,所需要的时间,次数等。这

2017-02-19 12:15:04 3186

原创 数据结构(C++) —— 最小堆(mainHeap)

一、理论知识普及:假定在各个数据记录(元素)中存在一个能够标识数据记录(元素)的数据项,并将依据该数据项对数据进行组织,这个数据项就成为关键码(KEY)。如果有一个关键码的集合,把它的所有元素按完全二叉树的顺序存储方式存放在一个一维数组中,并满足无论在哪棵树上看,父节点的值总比子节点的小,称这个集合为最小堆。二、性质:由于对存储在下标从0开始计数的数组中,因此,在堆中给定下标为i的

2017-02-19 11:22:08 1919

原创 一张图说明,到底调谁的operator new

2017-02-16 20:02:43 441

原创 了解各种不同意义的new

问题1:请说明new operator 和 operator  new的差异?一般我们写代码的时候,例如:String *p = new String("Memory  Management"); 所谓的new就是new operator。其动作一般分为两步:step1、开辟空间(分配足够的内存,用来放置某类型的对象;step2、调用构造函数,为刚才分配的内存中的那个对象设定初值)------

2017-02-14 13:27:56 278

原创 分别根据前中序遍历和后中序遍历来推二叉树的结构

1、理论分析:数据结构的基础知识中重要的一点就是能否根据两种不同遍历序列的组合(有三种:先序+中序,先序+后序,中序+后序),唯一的确定一棵二叉树。然后就是根据二叉树的不同遍历序列(先序、中序、后序),重构二叉树。显然,这三种组合并不是都能唯一确定二叉树的,其中先序+后序就不能唯一确定一棵二叉树。这里我就不证明了。举个反例:反例:任何结点只有左子树的二叉树和任何结点只有右子树的二叉树,

2017-02-14 01:21:34 11637 1

原创 栈实现表达式的计算

之前写过这个的博客,但是觉得不太好,都是截屏,所以我就趁有时间整理了一下。(结果发现了一个天大的低级错误。)我在实现栈的时候把析构函数写错了()所以就出现了以下的错误:首先,运行的时候答案是对的,但是是内存错误表现:然后我就进行单步调试:一直执行到最后一句代码也没有错误,直到最后一个大括号就出现了......所以说明可能是出现了内存泄露。果然

2017-02-12 14:42:43 1454

原创 数据结构(C++)——排序二叉树(二叉搜索树)

二叉搜索树也称为二叉排序树。也就是说,插入的第一个数据作为根节点,后来的结点跟其根结点比,小的插在左边,大的插在右边。下面给举个例子:由45,60 ,30 ,20 ,25 ,55 ,65 ,50, 40 ,35 。这几个树可以构成型如下面的一棵排序二叉树。1、二叉搜索树的性质:(1)每个结点都有一个作为搜索依据的关键码(key)也就是数据域,所有节点的关键码互不一样。(2)左子

2017-02-12 14:05:54 4741

原创 一元多项式的加减乘数实现

之前,简单地实现了多项式的打印和加法。这次我很详细地完善了之前的,增加了减法,乘法还有最最最重要的!!!除法!!!这里就大概说下我的思路:因为懒得重新写结构了,我就直接引用之前的DbList。并且增加了一个数据域,也就是说有两个数据域,一个存放系数,一个存放指数。这就构成了多项式的每一项了。尾插函数(push_back):每输入一项的系数和指数的时候就构成了一个结点

2017-02-09 21:25:46 1694

原创 递归算法-->整数划分

何为整数划分:所谓整数划分,是指把一个正整数n写成为其中,  为正整数,并且  ;  为n的一个划分。如果  中的最大值不超过m,即  ,则称它属于n的一个m划分。例如:6的划分:6;5+1;4+2;4+1+1;3+3;3+2+1;3+1+1+1;2+2+2;2+2+1+1;2+1+1+

2017-02-06 21:08:19 20861

原创 递归算法-->全排列

何为全排列?就比如说:123;其全排列为:123      132     213    231    321    312void swap(int &a,int&b){ int temp; temp = a; a = b; b = temp; cout<<"交换了"<<a<<" 和 "<<b<<endl;//为了方便理解,加了一句。}void perm(int li

2017-02-06 18:51:31 306

原创 递归算法-->汉诺塔hanoi

汉诺塔递归算法的核心:如果只有一个盘子的话,就直接是把这个盘子往C柱子上移。否则的话就先把前面n-1个移到中间,再把第n个移到C柱子上,再把那n-1个移回来。分别对应以下的代码:void hanoi(int n,char from,char depend,char to){ if(n == 1) move(1,from,to);//如果只有一个盘子的话,就直接是

2017-02-06 14:46:02 376 1

原创 递归算法--->阶乘,Fibonacci数列,折半查找

1、 阶乘 int Factorial(int n)//阶乘{ int fin; if(n == 0||n == 1) return 1; else return n*Factorial(n-1) ;//----------------------递归核心:要求n!则需求n*(n-1)!}2、Fibonacci数列(1)递归实现:int Fibrecurre

2017-02-06 14:28:53 623

原创 内存对齐

#include using namespace std; struct X1 { int i;//4个字节 char c1;//1个字节 char c2;//1个字节 }; struct X2 { char c1;//1个字节 int i;//4个字节 char c2;//1个字节 }; struct X3 { char c

2017-02-03 17:36:52 314

原创 内存初探——程序运行为什么需要内存

冯诺依曼结构和哈佛结构:冯诺依曼结构:数据和代码放在一起哈佛结构:    数据和代码分开存在什么是代码:函数什么是数据:全局变量,局部变量冯诺依曼和哈佛结构跟程序运行的关系:在S5PV210中运行的Linux系统上,运行应用程序时:这时候所有的应用程序的代码和数据都在DRAM,所以这种结构就是冯诺依曼结构;在单片机中,我们把程序烧写到Flash(norF

2017-02-01 22:14:49 1592

电装实习资料

电装实习资料

2017-04-24

注释转换(进阶版)

将C++注释风格转换为C注释风格

2017-02-25

注释转换机

将C++的注释风格转换为C语言的注释风格

2017-02-09

空空如也

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

TA关注的人

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