c++
文章平均质量分 75
_Shorey_
这个作者很懒,什么都没留下…
展开
-
UVA 10815安迪的第一个字典
10815 - Andy's First DictionaryTime limit: 3.000 secondsProblem B: Andy's First DictionaryTime limit: 3 secondsAndy, 8, has a dream - he wants to produce his very own dictionary.原创 2014-11-27 17:20:20 · 1147 阅读 · 0 评论 -
二叉树的C++实现
这个实现的时候由于采用了递归,思路比较清晰。出错的地方是在建立树的时候关于指针的指针容易出错,我比较菜,求助了网上的热心人才搞明白。附上网址供大家参考http://bbs.csdn.net/topics/391008633http://www.cnblogs.com/greatIDeas/archive/2010/11/24/1886915.htmlhttp://blog.csdn原创 2015-04-02 10:40:50 · 2875 阅读 · 0 评论 -
C/C++中有关const的用法
整理自网络1、const修饰普通变量和指针①const修饰普通变量有两种写法: const TYPE value;TYPE const value;两种写法效果一致,含义为:const修饰的类型为TYPE的变量value是不可变的②const修饰指针变量分四种写法如下:A: const char *p;B: char * const p;C: char转载 2015-04-19 07:21:50 · 289 阅读 · 0 评论 -
C++用位运算实现循环移位
转自:http://www.cnblogs.com/alex4814/archive/2011/09/08/2171862.html循环移位区别于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端。循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。例如:a = 0111转载 2015-04-19 17:10:01 · 9558 阅读 · 2 评论 -
关于C++中移位操作
C++移位操作对int型和unsigned int型数据的影响不同,具体测试如下Linux环境,GCC编译/************************************************************************* > File Name: test.cpp > Author: Shorey > Mail: shoreybup原创 2015-04-07 10:12:33 · 722 阅读 · 0 评论 -
继承与组合的优缺点
转自:http://www.xuebuyuan.com/365430.html类继承和对象组合是复用的两种最常用的技术。一:继承 继承是Is a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类可以重写父类的方法来方便地实现对父类的扩展。 继承的缺点有以下几点: ①:父类的内部细节对子类是可见转载 2015-04-07 15:21:55 · 596 阅读 · 0 评论 -
C语言实现只用加法和减法实现两个正整数的乘除运算
1、乘法a*b如下#include#includeint main(){ int a,b; int i,result=0; scanf("%d%d",a,b); for(i=0; i<b; i++) { result = result+a; } printf("%d\n",result); return原创 2015-04-07 11:01:25 · 4682 阅读 · 0 评论 -
希尔排序的C++实现
概念转自:http://blog.csdn.net/morewindows/article/details/6668714该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况)原创 2015-04-08 21:02:11 · 398 阅读 · 0 评论 -
快速排序的C++实现
快速排序是对冒泡排序的改进,改进的重点是:在冒泡排序中记录的比较和移动是在相邻位置进行的,记录每次交换只能前移或者后移一个位置,所以总的比较次数和移动次数比较多。快速排序中,记录的比较和移动是从两端向中间进行的,关键码较大的记录一次就能从前面移动到后面,关键码较小的记录一次就能从后面移动到前面,记录移动的距离较远,从而减小了总的比较次数和移动次数。基本思想:首先选取一个轴值,将待排序的记录分割原创 2015-04-08 21:25:10 · 319 阅读 · 0 评论 -
选择排序的C++实现
简单选择排序为最简单的选择排序法,基本思想为:将待排序列分为有序区和无序区,每次排序都在无序区中寻找出最小的关键值放在无序区的最前面和已有的有序区构成新的有序区,然后继续对无序区的元素进行选择直到排序完毕。C++实现如下:/************************************************************************* > File原创 2015-04-09 09:14:08 · 10360 阅读 · 1 评论 -
堆排序的C++实现
/************************************************************************* > File Name: HeapSort.cpp > Author: Shorey > Mail: shoreybupt@gmail.com > Created Time: 2015年04月09日 星期四 10时25原创 2015-04-09 12:57:01 · 282 阅读 · 0 评论 -
Floyd算法
参考:http://www.cnblogs.com/twjcnblog/archive/2011/09/07/2170306.html参考:http://www.cnblogs.com/dolphin0520/archive/2011/08/27/2155542.htmlFloyd算法用于求有向图中任意两点间的最短路径问题。主要需要的参数为图的邻接矩阵。基本思想:任意一点i到j的最转载 2015-04-27 10:04:38 · 360 阅读 · 0 评论 -
Prim算法
Prim算法用于生成最小生成树,根据的性质为最小生成树的MST性质MST性质:假设G=(V,E)是一个无向联通网络,U是顶点集合V的一个非空子集,若(u,v)是一条有最小权值的边,其中u∈U,v∈V-U,则必存在一棵包含边(u,v)的最小生成树。Prim算法思想:设G=(V,E)是一个无向连通图,令T=(U,TE)(U代表顶点,TE代表边)是G的最小生成树。T的初始状态为U={原创 2015-04-27 11:22:43 · 438 阅读 · 0 评论 -
malloc free和new delete的使用
1、malloc c和c++,都有,申请空间后必须手动释放,但是在申请类的空间的时候,不会自动调用构造函数。2、new c++专有,申请空间后可以自动进行空间回收,而且申请类的空间的时候,可以自动调用构造函数。3、free(与malloc对应)和delete(与new对应)通过free释放空间的时候不会自动调用类的析构函数,但是delete会自动调用类的析构转载 2015-04-22 09:35:03 · 315 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2015-04-22 09:32:25 · 243 阅读 · 0 评论 -
线性表的链接存储结构-双向链表
双向链表是在单项链表的基础上每个结点增加了一个前驱指针prior,使得每个结点既能指向其后一个结点的位置也能指向前一个结点的位置。C++实现如下:/************************************************************************* > File Name: DoubLinklist.cpp > Author:原创 2015-03-16 22:35:09 · 299 阅读 · 0 评论 -
线性表的链接存储结构-单向链表
一、单链表单链表的数据元素称为结点(node),每个结点分为数据域和指针域。下面为单链表的C++实现:#include using namespace std;struct Node //定义结点{ int data; Node *next;};class Linklist //定义链表类{public: Link原创 2015-03-12 11:18:01 · 369 阅读 · 0 评论 -
顺序栈的C++的实现
顺序栈本质上是顺序表的简化,唯一需要确定的是用数组的哪一端来表示栈底。通常用下标为0的一端作为栈底。/************************************************************************* > File Name: SeqStack.cpp > Author: Shorey > Mail: shoreybupt原创 2015-03-22 09:09:09 · 496 阅读 · 0 评论 -
两栈共享空间的顺序栈C++实现
程序中如果需要同时使用具有相同数据类型的两个栈的时候,可以采用一个数组,让一个栈的栈底在该数组的起始端,另一个栈的栈底在数组的结尾,有利于节省空间。/************************************************************************* > File Name: BothStack.cpp > Author: Shor原创 2015-03-22 14:54:31 · 2294 阅读 · 0 评论 -
栈的链式存储结构C++实现
栈的链式存储结构被称为链栈(linked stack)链栈在本质上是简化后的单链表,所有操作只集中在链表的一端,模拟栈的出栈和压栈等操作。一般选择单链表的头部来作为栈顶比较方便。/************************************************************************* > File Name: LinkStack.cp原创 2015-03-23 10:37:39 · 3105 阅读 · 0 评论 -
循环队列的C++实现
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。允许插入的一端为队尾(入队),允许删除(出队)的一端为队头。 顺序存储的队列是采用数组来实现的,但由于数组是静态的,在队列的出队和入队的操作下会出现整个队列后移逐渐占用下标加大位置而下标较小位置为空的“假溢出”现象,所以采用了将存储队列的数组看成是头尾相接的循环结构,即允许队列直接从数组的下标最大的位置延续到下原创 2015-03-23 16:07:54 · 6952 阅读 · 0 评论 -
C/C++中不同数据类型所占用的内存大小
32位 64位 char 1 1 int 4 大多数4,少数8 short 2 2long 4转载 2015-03-24 09:40:13 · 672 阅读 · 0 评论 -
队列的链式存储结构C++实现
采用单链表实现队列,实质上为单链表的一种简化。只需要在链表的头部删除和尾部加入元素即可/************************************************************************* > File Name: LinkQueue.cpp > Author: Shorey > Mail: shoreybupt@gmail原创 2015-03-24 15:59:31 · 406 阅读 · 0 评论 -
关于直接插入排序的C++实现
直接插入排序原理可以在网上搜到,这里给出C++实现。分为带“哨兵”和不带“哨兵”两种/************************************************************************* > File Name: InsertSort.cpp > Author: Shorey > Mail: shoreybupt@gmail原创 2015-04-08 11:15:02 · 334 阅读 · 0 评论 -
将表达式转换成逆波兰式
转载:http://www.cnblogs.com/stay-foolish/archive/2012/04/25/2470590.html一、题目◆3.21③ 假设表达式由单字母变量和双目四则运算算符构成。试写一个算法,将一个通常书写形式且书写正确的表达式转换为逆波兰式。实现下列函数:char *RPExpression(char *e);/* 返回表达转载 2015-04-05 15:15:29 · 7880 阅读 · 1 评论 -
浅谈C++中指针和引用的区别
出处:http://www.cnblogs.com/dolphin0520/ 指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int转载 2015-04-05 22:21:49 · 315 阅读 · 0 评论 -
struct和typedef struct
转自:http://www.cnblogs.com/qyaizs/articles/2039101.html分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1转载 2015-04-05 10:34:09 · 223 阅读 · 0 评论 -
Dijkstra算法(单元点最短路径)
Dijkstra算法解决图中某特定点到其他点的最短路径。迪杰斯塔拉(Dijkstra)算法思想:按路径长度递增的次序产生最短路径的算法。设集合S存放已经找到最短路径的顶点,V为所有节点的集合,S的初始状态只包含源点V0,对Vi∈V-S。假设从源点V0到Vi的有向边为最短路径,以后每求得一条最短路V0……Vk,就把Vk加入集合S里,并将路径V0……Vk,Vi与原来的假设比较,取路径较短者原创 2015-04-27 10:42:25 · 2465 阅读 · 0 评论