关闭

MFC透明贴图问题

对于透明贴图从网上找了很多资料,但是只有收获甚小,还是从一位老铁的开源项目中学到透明贴图的解决方案:(一)首先说下我的搜索结果吧,我的解决方案中是用一个函数搞定的: TransparentBlt(pDC->m_hDC,point.x, point.y, 109, 86,memDC.m_hDC,0, 0, 109, 86, RGB(0, 0, 0));该函数的参数原型为:BOOL Transpare...
阅读(18) 评论(0)

数据结构学习笔记吧(11)---基于树的查找

(1)二叉排序树定义:该二叉树或者是一棵空树或者是一棵具有下列性质的树: 1. 若他的左子树非空,则左子树上所有节点的值均小于根节点的值 2. 若他的右子树非空,则右子树上所有节点的值均大于(等于)根节点的值 3. 他的左子树与与右子树也分别是二叉排序树二叉排序树的插入思路: 1. 首先判断二叉树是否为空,若为空则可以直接把当做根节点 2. 若非空,则key与根节点进行比较 a....
阅读(11) 评论(0)

数据结构学习笔记(10)---基于线性表的查找

(1)顺序查找顺序查找比较简单,其思路就是从顺序表的头部或者尾部依次查找数组,直到查找数值为止。其平均查找长度为:ASL = (n+1)/2 代码如下:int SearchByIndex(int* arr,int length,int key) { while (-1 != --length) { if (key == arr[length]) {...
阅读(11) 评论(0)

数据结构学习笔记(12)----平衡二叉排序树

定义: 左子树与右子树的高度之差的绝对值小于等于1 左右子树也是平衡二叉树 a.平衡因子定义: 节点的左子树与右子树的深度之差** 例如: 平衡树的平衡方法:(1)LL型 B = A->lchild; A->lchild = B->rchild; B->rchild = A; A->bf =...
阅读(9) 评论(0)

当你在浏览器上,指尖轻轻输入 www.taobao.com 以后发生了什么?

本文转载自微信推送博文当你在浏览器上,指尖轻轻输入 www.taobao.com 以后发生了什么?本文从你按下浏览器的确定键开始分析,一直到你如何找到商品结束。适合各类读者了解你仅仅访问一次淘宝的首页,所涉及到的技术和系统规模,本文作者名叫孙放,著于他在淘宝实习期间。你发现快要过双十一了,于是想给你的男/女朋友买点儿礼物,你打开了淘宝。下面来看看,当你在浏览器轻轻www.taobao.com 以...
阅读(106) 评论(0)

哈夫曼编码

今天中秋节,同学都回家了,自己离家太远待在宿舍无聊就看看哈夫曼代码,顺手写了写,特此博客一篇,望多多指教:对一组数进行哈夫曼树的构建:假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,...
阅读(17) 评论(0)

数据结构学习笔记(9)---已知二叉树的遍历序列,恢复二叉树

思路:首先我们要了解如何使用二叉树中序序列和先序序列来手动恢复二叉树 (1)根据先序序列的第一个节点可得到根节点 (2)根据根节点在中序序列中的位置可以将中序序列划分为左右子树 (3)根据先序的第二个节点可以将子树划分为左右子树,依次循环下去 (4)直到当子树的长度为零时结束 //给先序和中序创建二叉树 char *PreArray = "abdfgceh"; //先序序列 char InArray...
阅读(17) 评论(0)

数据结构学习笔记(8)---二叉树的层次遍历

二叉树的层序遍历思路:使用队列 ,首先将根节点进队,然后出队并输出,把该节点的左右子树分别入队,直到队列为空时循环结束void LayerOrder(PBiTree root) { queue q; PBiTree p; if (root == NULL) { return; } q.push(root);...
阅读(27) 评论(0)

链表翻转的是三种方法

翻转链表的三种方法 每次遍历从最后一个节点插入最前面 使用三个指针原地不动翻转链表 递归法翻转链表 接下来进行一一叙述 (1)对于第一中方法比较笨拙,思路是:首先遍历到链表的最后一个节点,将最后一个节点插入头节点的后面,接着循环上述操作一一进行插入,知道只剩下一个节点为止。void ReserveList(pListNode pHead) { pListNode p = pHead;...
阅读(25) 评论(0)

数据结构学习笔记(6)---二叉树的创建与求深度

对于二叉树的创建其实就是和先序遍历差不多,可以有三种创建二叉树的的方式,即先序创建吗,中序创建和后序创建,但是我一般都是按先序创建的,原因是比较简单容易理解,但是我对于后序与中序创建二叉树好像还没见到过,应该存在但上网查了一下还是,没有呀,这里就只写先序创建二叉树void PreCreatBiTree(PBiTree *root) { int date; cin >> date;...
阅读(16) 评论(0)

数据结构学习笔记(7)---二叉树递归与非递归遍历

对与二叉树的便遍历有递归遍历与非递归遍历,递归遍历理解起来较简单,容易理解,代码书写简单,但是效率比较低下,对于非递归算法,虽然效率较高但是代码相对对一,且不是那么好容易理解,下面就进行一一解释数据结构typedef struct Tree { int date; struct Tree* lchild; struct Tree * rchild; }BiTree,*PBiT...
阅读(14) 评论(0)

两个栈实现一个队列

思路:对于两个栈实现一个队列,其实也很简单,只要弄清楚如何合作两个栈就很好写代码了,首先把一个栈当做入队的容器。即记为栈1,此时该入栈就相当于入队,但是出队的时候就有些麻烦了,首先把栈1的元素放入栈2,取出战二的栈顶即实现栈,最后一步再栈二放入栈1,这样就实现了出队。代码:#include using namespace std; #define MAXSIZE 20 typ...
阅读(26) 评论(0)

数据结构学习笔记(5)---静态与动态队列

(一)静态队列数据结构:typedef struct Node { int date; struct Node *next; }Node, *PNode;typedef struct queue { PNode top; PNode bottom; }Queue, *PQueue;(1)初始化void InitQueue(Queue *queue) { que...
阅读(23) 评论(0)

数据结构学习笔记(4)---静态与动态栈

对于静态栈其实就是一个记录最后一个元素位置的数组,对于动态栈其实就是一个头插法创建链表,因为比较简单,所以就不过多赘述,在这里简单实现以下:(一)静态栈数据结构:typedef struct Stack { int elem[MAXSIZE]; int top; }StaticStack;(1)栈的初始化void InitStack(StaticStack * s) { s-...
阅读(24) 评论(0)

数据结构学习笔记(3)---循环链表(约瑟夫环问题)

最近学习循环链表,其实循环链表的本质和单向链表没有多大区别的,只是在创建时把最后的指针指向头结点,但是当想用循环链表解决约瑟夫环的问题时,要去掉头结点。(1)循环链表的创建void CreateCircleList(pCircleNode pHead) { int date; cout <> date; pCircleNode p...
阅读(35) 评论(0)

数据结构学习笔记(2)---双向链表

其实双向链表原理和单向链表原理差不多,只不过是多了一个反向指针,双向链表在操作可以从两个方向进行,即头指针和为指针,这样做得优点是操作就近原则,提高效率。此内容包括: 双向链表的初始化 创建双向链表 用头指针遍历双链表 用尾指针遍历双链表 按索引查找节点 按索引删除节点 按索引添加节点 (1)双向链表的初始化void InitDoubleList(pDLinkList *pHead, pDLinkL...
阅读(39) 评论(0)

数据结构学习笔记(1)---单向链表

数据结构学习笔记—单向链表 链表的初始化 头插法创建链表 尾插发创建链表 链表的显示 按索引值查找节点 按索引值删除节点 按索引值添加节点 (1)链表的初始化void InitList(pListNode *pHead) { *pHead = new ListNode; (*pHead)->next = NULL; } (2)头插法创建链表void HeadCreatList(pL...
阅读(30) 评论(0)

Ubuntu网络配置

对于Ubuntu网络配置,真是费了我一些小心思 去研究,第一开始的初衷是想用Linux去上网,但是发现链接不上网络,于是上网搜了搜解决办法如下: 首先对于打开主机的网络共享中心,会发现有两个VMnet1 和VMnet8,VMnet1 其实就是一个Host-Only网络模式,再次没用到因此不做过多介绍(其实我也不太清楚,只是正在学),但是VMNet8这是一个NAT方式,最简单的组网方式了,右键VMne...
阅读(83) 评论(0)

MFC view区画直线延迟文问题

今天遇到一个非常恶心的问题,就是在View区域画直线时,画出来后怎么也不显示,只有在连续点击数遍多次或者鼠标移动到工具栏师才出现刚才画的线,于是我很是纳闷,不知道原因何在,但是我想到以前有EasyX控制台画图时也出现类似情况,难道和操作系统有关系,于是果断上网查了查,尼玛,果然不出如此,桌面主题也有一定关系,于是得出以下解决办法:1. 把Windows的主题改为Windows经典 2. 画完线...
阅读(29) 评论(0)

MFC中有三种文件操作的类 CFile ,CArchive,CDocument

MFC中有三种文件操作的类,他们分别为 CFile CArchive CDocument 下面分别对每个进行使用说明(1)CFile在使用的时候比较麻烦,一般需要先定义一个结构体,然后对其每个结构体进行存储,存储实例代码如下:void CTest1Dlg::OnSave() { static char szFilter[] = "Chart Files (*.xlc)|*.xlc|Work...
阅读(55) 评论(0)
37条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1436次
    • 积分:356
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类