随笔分类 -  Algorithm and Date structure

上一页 1 2 3 下一页
哈希表
摘要:来源:http://www.cnblogs.com/JCSU/articles/2028813.html/*******************************************************************************/*/*版权所有:-/*模块名:查找/*文件名:hash.cpp/*功能描述:哈希表/*作者:/*版本:1.0/*-----------------------------------------------------------------------------/*备注:用链地址法解决冲突/*------------------ 阅读全文
posted @ 2013-08-30 20:29 猿人谷 阅读(360) 评论(0) 推荐(0) 编辑
AVL树
摘要:来源:http://www.cnblogs.com/JCSU/articles/2026617.html/*******************************************************************************/*/*版权所有:-/*模块名:查找/*文件名:avlTree.cpp/*功能描述:平衡二叉树/*作者:/*版本:1.0/*-----------------------------------------------------------------------------/*备注:-/*--------------------- 阅读全文
posted @ 2013-08-30 20:27 猿人谷 阅读(346) 评论(0) 推荐(0) 编辑
二叉查找树
摘要:来源:http://www.cnblogs.com/JCSU/articles/2026482.html/*******************************************************************************/*/*版权所有:-/*模块名:查找/*文件名:bitreeSearch.cpp/*功能描述:二叉排序树/*作者:/*版本:1.0/*-----------------------------------------------------------------------------/*备注:-/*---------------- 阅读全文
posted @ 2013-08-30 20:26 猿人谷 阅读(384) 评论(0) 推荐(0) 编辑
线索二叉树
摘要:来源:http://www.cnblogs.com/JCSU/articles/2005967.html/*******************************************************************************/*/*版权所有:-/*模块名:树/*文件名:biThrTree.cpp/*功能描述:线索二叉树的表示与实现/*作者:/*版本:1.0/*-----------------------------------------------------------------------------/*备注:输入示例与输出结果/*/*e.g. 阅读全文
posted @ 2013-08-30 20:24 猿人谷 阅读(510) 评论(0) 推荐(0) 编辑
二叉树非递归遍历
摘要:来源:http://www.cnblogs.com/JCSU/articles/2005944.html【bitree.cpp】/*******************************************************************************/*/*版权所有:-/*模块名:树/*文件名:bitree.cpp/*功能描述:二叉树的非递归遍历/*作者:/*版本:1.0/*-----------------------------------------------------------------------------/*备注:输入示例与输出结果/ 阅读全文
posted @ 2013-08-30 20:23 猿人谷 阅读(438) 评论(0) 推荐(0) 编辑
二叉树递归遍历
摘要:1 /* 模块名 : 树 2 /* 文件名 : btree.cpp 3 /* 功能描述 : 二叉树的递归遍历 4 5 /* 备注 : 输入示例与输出结果 6 /* e.g. input : ABD###CE#F### 7 /* bi-tree : 8 /* A 9 /* / \ 10 /* B C 11 /* / / 12 /* D E 13 /* ... 阅读全文
posted @ 2013-08-30 20:21 猿人谷 阅读(702) 评论(0) 推荐(0) 编辑
串匹配
摘要:1 /******************************************************************************* 2 /* 3 /* 版权所有 : - 4 /* 模块名 : 串 5 /* 文件名 : string.cpp 6 /* 功能描述 : 串的模式匹配 7 /* 作者 : 8 /* 版本 : 1.0 9 /* -------------------------------------------------------------------------... 阅读全文
posted @ 2013-08-30 20:10 猿人谷 阅读(361) 评论(0) 推荐(0) 编辑
顺序循环队列
摘要:1 //循环队列的顺序存储表示与实现 2 3 #include 4 #include 5 6 /****************************************************************************** 7 /* 数据类型和常量定义 8 /******************************************************************************/ 9 #define OK 110 #define ERROR 011 #define OVERFLOW ... 阅读全文
posted @ 2013-08-30 20:00 猿人谷 阅读(640) 评论(0) 推荐(0) 编辑
(重点)链式栈
摘要:顺序栈的实现在于使用了数组这个基本数据结构,数组中的元素在内存中的存储位置是连续的,且编译器要求我们在编译期就要确定数组的大小,这样对内存的使用效率并不高,一来无法避免因数组空间用完而引起的溢出问题,二在系统将内存分配给数组后,则这些内存对于其他任务就不可用。而对于链式栈而言,使用了链表来实现栈,链表中的元素存储在不连续的地址,由于是动态申请内存,所以我们可以以非常小的内存空间,另外当某个项目不使用时也可将内存返还给系统。顺序栈是用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时由于栈的操作的特殊性,还必须附设一个位置指针top(栈顶指针)来动态地指示栈顶 阅读全文
posted @ 2013-08-22 08:59 猿人谷 阅读(751) 评论(0) 推荐(0) 编辑
单链表
摘要:来源:http://blog.csdn.net/hopeyouknow/article/details/6711216[cpp] view plaincopy#ifndefList_H#defineList_HtypedefintItem;/*定义数据项类型*/typedefstructnode*PNode;/*定义节点指针*/typedefstructnode/*节点的定义*/{Itemitem;/*数据域*/PNodenext;/*链域*/}Node;typedefPNodePosition;typedefPNodeList;ListMakeEmpty(ListL);/*功能生成空链表L* 阅读全文
posted @ 2013-08-21 14:48 猿人谷 阅读(468) 评论(0) 推荐(1) 编辑
双向链表
摘要:来源:http://blog.csdn.net/hopeyouknow/article/details/6716177首先编写头文件,头文件里做相关的定义和声明,DList.h内容如下:[cpp] view plaincopy#ifndefDList_H#defineDList_HtypedefintItem;typedefstructNode*PNode;typedefPNodePosition;/*定义节点类型*/typedefstructNode{Itemdata;/*数据域*/PNodeprevious;/*指向前驱*/PNodenext;/*指向后继*/}Node;/*定义链表类型* 阅读全文
posted @ 2013-08-21 14:44 猿人谷 阅读(477) 评论(0) 推荐(0) 编辑
最基本的二叉树
摘要:来源:http://blog.csdn.net/hopeyouknow/article/details/6740616?reload一个最基本的二叉树~~头文件BiTree.h[cpp] view plaincopytypedefintItem;typedefstructnode{structnode*lchild;structnode*rchild;Itemdata;}BiTNode,*BiTree;/*构造一棵新的二叉树*/BiTreeInitBiTree(BiTNode*root);/*生成节点*/BiTNode*MakeNode(Itemitem,BiTNode*lchild,BiTN 阅读全文
posted @ 2013-08-21 14:41 猿人谷 阅读(544) 评论(0) 推荐(0) 编辑
链队列
摘要:来源:http://blog.csdn.net/hopeyouknow/article/details/6736987队列也是常用的数据结构之一,下面给出一个链式队列的实现~~头文件Queue.h[cpp] view plaincopy#ifndefQueue_H#defineQueue_HtypedefintItem;typedefstructnode*PNode;typedefstructnode{Itemdata;PNodenext;}Node;typedefstruct{PNodefront;PNoderear;intsize;}Queue;/*构造一个空队列*/Queue*InitQ 阅读全文
posted @ 2013-08-21 14:38 猿人谷 阅读(497) 评论(0) 推荐(0) 编辑
链式栈
摘要:来源:http://blog.csdn.net/hopeyouknow/article/details/6725049栈是常用的数据结构之一,下面给出一个链式栈的实现~~头文件Stack.h[cpp] view plaincopy#ifndefStack_H#defineStack_HtypedefintItem;typedefstructnode*PNode;/*定义栈节点类型*/typedefstructnode{Itemdata;PNodedown;}Node;/*定义栈类型*/typedefstructstack{PNodetop;intsize;}Stack;/*构造一个空栈*/St 阅读全文
posted @ 2013-08-21 14:37 猿人谷 阅读(605) 评论(0) 推荐(0) 编辑
冒泡排序
摘要:冒泡排序思想同之前介绍的两种排序方式一样,冒泡排序也是最简单最基本的排序方法之一。冒泡排序的思想很简单,就是以此比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终浮到水面上。举例分析说明一下,如下数据:2 7 4 6 9 1 首先比较最后两个数字,发现1比9小,于是前移2 7 4 6 1 9 然后比较6和12 7 4 1 6 9 继续前移,然后是4和12 7 1 4 6 9 7和1比较2 1 7 4 6 9 2和11 2 7 4 6 9 至此,第一趟冒泡过程完成,最小的元素1被移到第一个,不再参与后面的排序过程。下一趟冒泡过程同理,比较6和9,以此类推 阅读全文
posted @ 2013-06-20 09:32 猿人谷 阅读(1326) 评论(0) 推荐(0) 编辑
快速排序
摘要:今天介绍快速排序,这也是在实际中最常用的一种排序算法,速度快,效率高。就像名字一样,快速排序是最优秀的一种排序算法。思想快速排序采用的思想是分治思想。快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的 元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最终位置以便分治递归。举例说明一下吧,这个可能不是太好理解。假 阅读全文
posted @ 2013-06-20 09:28 猿人谷 阅读(970) 评论(2) 推荐(0) 编辑
常见排序算法
摘要:名称复杂度说明备注冒泡排序 BubbleSortO(N*N)将待排序的元素看作是竖着排列的 “ 气泡 ” ,较小的元素比较轻,从而要往上浮 插入排序 InsertionSortO(N*N)逐一取出元素,在已经排序的元素序列中从后向前扫描,放到适当的位置起初,已经排序的元素序列为空选择排序 SelcetionSortO(N*N)首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此递归。快速排序 QuickSortO(n*log2(n))先选择中间值,然后把比它小的放在左边,大的放在右边(具体的实现是从两边找,找到一对后. 阅读全文
posted @ 2013-05-08 15:35 猿人谷 阅读(224) 评论(0) 推荐(0) 编辑
四种排序算法
摘要:源码下载:http://www.tracefact.net/SourceCode/SimpleSort.rar四种简单的排序算法我 觉得如果想成为一名优秀的开发者,不仅要积极学习时下流行的新技术,比如WCF、Asp.Net MVC、AJAX等,熟练应用一些已经比较成熟的技术,比如Asp.Net、WinForm。还应该有着牢固的计算机基础知识,比如数据结构、操作系统、 编译原理、网络与数据通信等。有的朋友可能觉得这方面的东西过于艰深和理论化,望而却步,但我觉得假日里花上一个下午的时间,研究一种算法或者一种数据结 构,然后写写心得,难道不是一件乐事么?所以,我打算将一些常见的数据结构和算法总结一下 阅读全文
posted @ 2013-03-06 13:45 猿人谷 阅读(393) 评论(0) 推荐(0) 编辑
对快速排序算法的分析
摘要:开篇在实际的过程中,总需要对一些数据进行排序,在众多的排序算法中,快速排序是较为常用的排序算法之一。而网上对于快速排序的中文资料还不是很全。写 这篇博文主要记录一些自己对于快速排序的了解,以及对快速排序的性能的分析。我将在这里记录下我对快速排序的认识和学习过程 ,用尽可能简单明了的叙述来阐述我的理解。快速排序基于算法中很重要的思想是 分治。所以会先介绍一下分治思想,然后对算法原理进行介绍,接着会分析算法的性能并对算法作进一步的讨论。注:为了便于说明问题,本博文中会用到部分《introduction to algorithm》中的图片。关键词:快速排序、分治、递归“大事化小”——从分治说起分治? 阅读全文
posted @ 2012-12-17 13:56 猿人谷 阅读(336) 评论(1) 推荐(0) 编辑
使用鼠标
摘要:C语言Windows程序设计 -> 第十一天 -> 使用鼠标鼠标的使用同样是通过获取Windows鼠标消息来获取用户当前的鼠标状态的。一、鼠标的介绍 鼠标是计算机的输入设备之一, 在图形化的操作系统上, 鼠标的使用使一些复杂的操作变得简单, 随着科技的进步, 鼠标的种类也越来越多, 按接口类型可分为串行鼠标、PS/2鼠标、总线鼠标、USB鼠标(多为光电鼠标)四种。按其工作原理及其内部结构的不同可以分为机械式,光机式和光电式。 这里我们不讨论鼠标的硬件构造, 更多关于鼠标的硬件知识请自行查阅相关资料。 1>. 鼠标所在的位置 在Windows系统下, 用户移动鼠标时, 在屏幕上 阅读全文
posted @ 2012-12-14 14:33 猿人谷 阅读(525) 评论(0) 推荐(0) 编辑

上一页 1 2 3 下一页