![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
_未名
这个作者很懒,什么都没留下…
展开
-
c++设计模式---适配器模式
#includeusing namespace std;//适配器模式,通过调用第三方类库实现软件功能//基类Baseclass Base{public :virtual void process()=0;//process()为纯虚函数,多态virtual ~Base(){}};//Adaptee类中的Request()函数已经实现了A原创 2015-04-25 13:49:15 · 689 阅读 · 0 评论 -
回文数
#include#includeint _tmain(int argc, _TCHAR* argv[]){ char s[80]="fhijrhj"; int flag = 1; char *p = s; char *t = s; printf("请输入一个字符串:\n"); // gets(s); while (*p) p原创 2014-09-29 19:18:15 · 471 阅读 · 0 评论 -
递归
typedef struct node{ int data; struct node *next;}ElemSN;//求单链表的最大值int maxValue(ElemSN *h){ int max = 0; if (h) { max= maxValue(h->next); if (h->next == NULL) max原创 2014-10-06 20:30:49 · 434 阅读 · 0 评论 -
循环队列
#include#include#define n 6//入队操作int in(int *q,int rear ,int val){ rear=(rear+1)%4; q[rear]=val; printf("%5d已入队",val); return rear;}//出队操作int out(int *q,int front){ fro原创 2014-10-11 19:34:41 · 391 阅读 · 0 评论 -
程序计数器(计算运行该程序所需的时间)
//计算运行该程序所需的原创 2014-10-12 19:56:14 · 1371 阅读 · 0 评论 -
顺序查找,二分查找,哈希查找
查找1.顺序查找(1)适用于顺序表,链表。(2)方法:在某个数据集合中,从第一个数据元素开始,依次向后查找。i>顺序表的实现Int search (int a [ ], int n ,int key){Int i,flag=1;For(i = 0;i {If(a[j]==key)break;}If(fl原创 2014-10-31 08:05:27 · 2357 阅读 · 0 评论 -
程序员上午考试理论知识整理
请输入文字请输入文字原创 2014-11-08 22:27:05 · 654 阅读 · 0 评论 -
c++的子对象,继承和多态
C++子对象 C++的子对象其实相当于继承的另一种表现方式,一个类要调另一个类的方法,(当然也能够继承),在这个类例如son中数据成员写一个类base的对象m1,在son的构造函数中也要调用base的构造,然后就可以通过类son的对象调用类base的方法。实现代码如下:#includeusing namespacestd;class base{private:int x原创 2014-11-11 21:16:59 · 721 阅读 · 0 评论 -
无向图的实现
这是 无向图实现的源代码,当然,相信你看完一定也学会了有向图,有(无)向网的实现。有bug的地方还请大神指正。#include#include#define maxvex 20typedef struct {int a[maxvex][maxvex];int vex[maxvex];int vexnum;//顶点数int arcnum;//边的数目原创 2014-11-26 20:52:02 · 640 阅读 · 0 评论 -
无向图的实现
这是无向图的源代码,相信你看了也已经学会无(有)向网,有向图了。如有bug,还请大神指正。#include#include#define maxvex 20typedef struct {int a[maxvex][maxvex];int vex[maxvex];int vexnum;//顶点数int arcnum;//边的数目}AdjMat原创 2014-11-26 22:08:35 · 820 阅读 · 0 评论 -
huffman树的分析
问题分析:huffman树即最优二叉树,问题不再详细描述了。下面说下实现的过程的要注意的问题。 1.先从森林中取出两个权值最小的结点(一个最小,一个次小)这两个结点作为一个双亲结点的两个孩子结点,双亲的权值为两个孩子结点权值之和。 2.把该双亲结点放回到森林,再去取出最小的结点(一个最小,一个次小),重复1过程,直到森林只剩一个结点。但此时并不是只剩一个结点,而是变成一棵树,原创 2014-12-05 21:35:06 · 667 阅读 · 0 评论 -
图的遍历(广度优先)
图的广度优先遍历(非递归)分析:主要思想用队列实现,(与二叉树的层次遍历类似,)第一个结点A入队,然后与其相关的结点都入队,A出队并输出A已经被访问,,此时找与队首元素(假设为B)相关的结点,全部入队,B出队并输出B已经被访问,依次循环直到队列为空。//图的遍历(广度优先)void DFS(AdjMatrix *G,Visit *V){ int q原创 2014-12-21 23:02:37 · 516 阅读 · 0 评论 -
c++实现一条调用多条输出
#includeusing namespace std;class A{private:int x,y; A * next; public:A(int x=0,int y=0,A * n=NULL) {this->x=x; this->y=y; next=n; }原创 2015-03-08 21:31:37 · 775 阅读 · 0 评论 -
c++实现一个 调用多条输出(使用动态数组实现)
#include #include#includeusing namespace std;class A{private:int x,y;public:A(int x=0,int y=0) { this->x=x; this->y=y; } void fun()原创 2015-03-09 20:48:34 · 950 阅读 · 0 评论 -
堆排序
堆排算是排序算法中比较难的一个算法,在实现编码之前首先要对堆排的思想有一个清晰的思路,下面我们就来分析一下堆排序。 1.首先要明白堆排序第一步要有堆,也就是完全二叉树,那么问题来了,如何创建一个完全二叉树呢?完全二叉树是需要按层来创建的,如果你曾经编写过按层遍历二叉树这块会很好理解,按层的话要记录上一个结点,所以要用到 队列,创建的节点依次入队。 2.创建好完全二叉树,堆排原创 2015-04-20 19:10:36 · 622 阅读 · 0 评论 -
c++设计模式---代理模式
#includeusing namespace std;//代理模式中注意代理虽然可以实现某个功能,但是代理并不具备该功能,它的实现是通过调用别人的功能//至于具体哪个功能,多态中基类指针指派生类对象,指向哪个派生类,就去调用哪个派生类的fun函数class Base{public :virtual void fun()=0;virtual ~Base(){}原创 2015-04-25 13:45:44 · 776 阅读 · 0 评论 -
链表,逆波兰表达式
遇到的问题: 1.c语言中求随机数 srand((unsigned)time(NULL)); /*随机种子*/ n=rand()%(Y-X+1)+X; /*n为X~Y之间的随机数*/ 3.合并两个链表要注意如果两个表长不一样,走到短的链表的最后一个结点,出循环,然后进行挂链 4.一条链表分成奇偶两条链原创 2014-09-25 21:37:20 · 778 阅读 · 0 评论