- 博客(15)
- 收藏
- 关注
原创 左式堆的实现
头文件:#ifndef LeftistHeap_H#define LeftistHeap_H#includeusing namespace std;templatestruct LeftistNode{ T data; LeftistNode *left; LeftistNode *right; int npl; LeftistNode(const T & theD
2012-05-27 22:36:45 794
原创 二叉队列的实现
头文件:/**A class for Minimum BinaryHeap*writter: flyaway*Time: 2012.5.22*description:* use the array to store data* This class provide public functions:* insert()* findMin()* deleteMin()*
2012-05-27 22:24:21 306
原创 AVL树的实现
这几天在复习数据结构,当时学的时候AVL树没有实现起来,当时觉得AVL树的各种旋转操作比较复杂。现在复习的时候好好看了一下,完整的实现了AVL树。现在给出代码如下。这是头文件:/** A class for a AVL** Writer:flyaway** Time:2012.5.14* descroption:* This class is changed from BST
2012-05-23 10:41:55 376
原创 #define的使用注意
昨天在用C++写一个程序的时候,用到了#defineMAX(a,b) a>b?a:b很显然,这个宏定义了语句,用于求取a、b之间的最大值,通常来说这应该比单独写一个函数来得高效(函数调用需要压栈出栈的操作)。这样的语句我以前用过多次,应该没什么问题的。但是,我在程序中有这样一段代码:int a =Height(p->left);int b =Height(p->rig
2012-05-22 10:24:17 634
原创 图形学算法——图形的颜色填充算法
一、有序边表填充算法(扫描线)1、算法思想简单的来说,就是计算出屏幕上有哪些像素点是在多边形内部的,重复利用多变形内部区域的连续性。算出每一条水平线上有哪些点是在该多边形内的,然后改变这些点的像素值。如图所示:2、算法步骤a、确定多边形顶点的最小和最大y值(ymin和ymax)。b、从y=ymin到y=ymax,每次用一条扫描线进行填充。c、对一条扫描线填充的过程可分为
2012-05-06 21:24:58 6387 2
原创 图形学算法——点与多边形的关系(交点数判断法)
基本思想:从指定点出发,向无穷远处发出一条射线,计算这条射线和多变的交点个数,若交点数为偶数(包括0),则说明在该点在多边形外;否在该点在多边形内。 此处,为了方便我们叙述,我们假设射线是水平向右发射的。为了计算射线与多边形所有边的交点,我们需要遍历多边形所有的边,判断是否存在交点。这样的计算量非常大,以下给出几种可以减少计算量的方法。一、构建安全矩形 如图所示,构
2012-03-26 22:34:35 5393
原创 图形学算法--Bresenham算法画圆(四分法)
之前几篇blog都是在写图形处理中直线的画法,现在开始我们进入圆的画法。首先要讲的就是圆的Bresenham四分画法。圆的Bresenham四分画法,其基本思想和直线的Bresenham画法是一样的,由当前点推断出下一个点的位置,一个点一个点地生成。同时,由于圆的的对称性,我们只需要计算出第一象限中的14圆就行了,其他三个象限的圆能通过对称性直接得到。具体做法如下:假设目前所要画的
2012-03-20 22:31:24 6697
原创 图形学算法--Bresenham算法的改进(综合各个方向)
上次我们说明了Bresenham直线算法的原理和实现过程,但是上次我们只是给出了一个方向上的直线画法,这次我们就来说明一下如何画出所有方向上的直线。 其实想要画出全方向上的直线是很简单的,只要分别单独求出8组不同方向上的算法,写成8个函数,然后需要画直线的时候就调用相应的函数。很显然,这是最简单的,但这不是今天的主题,今天我想说明的是,如何把这8个函数整合到一起,只用一个函数就能画出所有方向上的直
2012-03-19 23:07:25 1787
原创 图形学算法--Bresenham画直线
上次写了一下DDA直线算法的过程和实现,但DDA算法也有一些缺点: 主要它涉及到了实数的除法运算,效率不太高。 今天,我介绍另外一种画直线的算法:Bresenham算法(中点画线) Bresenham算法的基本思想就是一步一步生成直线上的结点,可以说是生成式算法。它的优点就在于整个算法过程中全是整数运算,没有实数运算。 首先假设直线的k(斜率)是0k
2012-03-12 21:43:26 3338
原创 图形学算法--DDA画直线
这学期刚刚接触图形学,发现图形学中涉及到了很多的算法,需要一一调理清楚,因此为了方便自的复习和学习,决定每学一个算法,就写下来,巩固一下学习的成果。 众所周知,屏幕的显示其实就是一个一个像素点,就是一个很大的矩阵,我们在这样的大矩阵中填入颜色信息,就形成了我们看到的图像。 我们这次要画的是直线,就是在给定初始点和终点的情况下,计算出直线上的像素点,然后在这些像素点上填上颜色,把直线画出
2012-03-03 13:42:58 3101
原创 解决win7中80端口被占用
今天由于学习需要,在本地安装了xampp,用于创建 lamp环境,但没想到发现apache却无法启动,80端口被占用。于是自然而然地就必须检查哪个进程占用着80端口,在cmd下面输入命令:netstat -ano,在输出的结果中找到占用80端口的进程pid,发现是4,然后在任务管理器中查看pid为4的是什么进程。一查就发现不对了,竟然是System进程占用着。System是WINDOWS页面内存管
2012-03-03 13:35:50 1255
原创 利用HtmlParse抽取网页正文内容
最近在做有关自然语言抽取方面的研究,接触到了很多相关的工具包,尤其是关于html中格式文本的抽取,虽然网上有很多相关高效算法,但我只想尽量简单快捷地将我需要的内容从html中抽取出来。因此,我只需要一个轻量级的工具,满足我的需求就行了。之前在网上搜索了一下,主要有Jtidy和HtmlParser这两个工具,都是java的。Jtidy的主页是:http://jtidy.sourceforge.net
2012-03-03 13:23:16 2140
原创 数据结构学习笔记三
数据结构学习笔记三数组与结构(2)上一篇笔记讲的是ADT矩阵的存储和相应算法,今天是本章的第二块内容,ADT字符串。字符串是一种最基本的数据类型,它的存储表示和相应算法在其他计算机课程中也是至关重要的。接上一篇:二、ADT字符串1、存储结构顺序存储结构 字符串的顺序存储结构是指用固定长度的数组来存储串中的字符序列。这很方便,数组有随机访问元素的特点,而字
2011-10-21 19:56:27 634
原创 数据结构学习笔记二
数据结构学习笔记二数组与结构(1)一、ADT稀疏矩阵1、存储结构a、三元组我想稀疏的矩阵的定义我就不需要说了吧,如果有人不知道的,请查询线性代数。如果直接用二维数组来存储矩阵,确实是很方便的,其逻辑结构和存储结构雷同,易于处理各种操作,简单直观。但是,如果是稀疏矩阵呢?很显然,如果稀疏矩阵很大的话,就浪费了大量的存储空间(所有为零的元素),实在很不经济。为此,我们可以用一个
2011-10-21 17:26:31 1051
原创 数据结构学习笔记一
数据结构学习笔记一基本概念数据结构的这一部分其实是很枯燥的(但是整个数据结构却是很有趣的),只是一些有关数据结构和算法的定义、评价方法等,可以直接跳过这一部分,直接从下一章开始,但是为了笔记的完整性,我还是决定写一下有关基本概念的内容。一、算法描述 算法的定义:是一组完成特定任务的有穷指令序列。算法必须具有以下5个属性:A、输入:有零个或者多个由外部提供的输入量。
2011-10-21 16:51:11 549
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人