C++
晓处微寒
这个作者很懒,什么都没留下…
展开
-
队列-C++-单链表
#include<iostream>using namespace std;class Queue{public: Queue(); ~Queue(); void EnQueue(int x);//入队 int DeQueue();//出队 int GetQueue();//取队头 bool IsEmpty();//判空private: str...原创 2018-03-21 22:49:41 · 159 阅读 · 0 评论 -
数组去重不改变原顺序(非排序去重)
算法的伪代码描述:QuChong:1.初始化标志数组flag为1;2.i从0到n递增2.1 j从i+1到n递增2.1.1 如a[i]等于a[j],标志组置为0;3.i从0到n递增3.1若flag[i]非0,将a[i]赋给a[t],t++;4.删除后的数组大小n等于t;5.i从0到n递增,依次输出a[i]。#include<iostream>#...原创 2018-09-22 23:07:22 · 2936 阅读 · 0 评论 -
分别使用C和C++判断字符串回文
回文串:字符串字符从前往后与从后往前一致(中心对称)C语言判断回文串:#include <stdio.h>#include <string.h>int main(){ char a[105]; int i,l; while(scanf("%s",a)!=EOF)//多组输入 { l=strl...原创 2018-07-24 22:05:23 · 6337 阅读 · 2 评论 -
自定义一个Stack类
思想:用一个数组读入元素,再反向取元素即可模拟栈中元素先进后出,后进先出。源代码:#include <iostream>using namespace std;const int Max_SIZE=100;//定义栈大小class Stack{public: Stack(); ~Stack(); void Push(int x);//入栈 v...原创 2018-07-06 09:36:23 · 1836 阅读 · 0 评论 -
C/C++读取系统本地时间
最近对时间读取产生了兴趣,看到一个博客确实不错,在这里转载一下(可能略有修改),算是推广和方便以后查阅了。本博客转自:https://blog.csdn.net/zjnig711/article/details/2419081c++ 如何获取系统时间2008-04-28 15:34//方案— 优点:仅使用C标准库;缺点:只能精确到秒级 #include <time.h> #includ...转载 2018-07-04 15:13:06 · 1728 阅读 · 1 评论 -
多态--经典示例
多态:子类通过继承使用基类中元素,函数,避免重复定义。基类函数为虚函数或纯虚函数,具体功能要看子类相应函数。代码:#include<iostream>using namespace std;class Shape//定义基类{public: Shape(int a,int b)//取长,高 { width=a; hei...原创 2018-07-17 00:10:16 · 350 阅读 · 0 评论 -
二叉树创建,遍历(类)
代码:#include<iostream>#include<queue>using namespace std;//创建节点struct Tnode{ char data;//数据域 Tnode *rchild;//右孩子 Tnode *lchild;//左孩子};//定义类class Tree{public: Tr...原创 2018-07-16 23:17:24 · 254 阅读 · 0 评论 -
图的最小生成树——Prim算法
Prim算法的基本思想用伪代码描述如下:1. 初始化:U = {v0}; TE={ }; 2. 重复下述操作直到U = V: 2.1 在E中寻找最短边(u,v),且满足u∈U,v∈V-U; 2.2 U = U + {v}; 2.3 TE = TE + {(u,v)};源码:#include<iostream>#include<vector>#incl...原创 2018-06-26 00:24:59 · 703 阅读 · 0 评论 -
图的最小生成树——Kruskal算法
Kruskal算法的基本思想用伪代码描述如下:1. 初始化:U=V;TE={ }; 2. 重复下述操作直到T中的连通分量个数为1: 2.1 在E中寻找最短边(u,v); 2.2 如果顶点u、v位于T的两个不同连通分量,则 2.2.1 将边(u,v)并入TE; 2.2.2 将这两个连通分量合为一个; 2.3 标记边(u,v),使得(u...原创 2018-06-26 00:12:55 · 648 阅读 · 0 评论 -
Floyd算法(C++极简版)
<伪代码>初始化权值数组,路径字串判断是否存在其它最小路径 更新权值数组和路径字串组源码:#include<iostream>#include<iomanip>//控制格式#include<string>#define INF 0x3f3f3f3f//定义无穷大using namespace std;#define vertexNum 5//源...原创 2018-06-10 19:26:36 · 4240 阅读 · 2 评论 -
Dijkstra(迪杰特斯拉)算法(极简版)
示例:用Dijkstra算法求A到图中各点的最短路径源码:#include<iostream>#include<iomanip>//控制格式#include<string>#define INF 0x3f3f3f3f//定义无穷大using namespace std;#define vertexNum 5//源点数int G[vertexNum][vertex...原创 2018-06-06 16:29:29 · 14381 阅读 · 4 评论 -
二叉链表创建一棵二叉树并进行前中后序遍历
源码:#include<iostream>using namespace std;typedef char Datatype;struct TNode{ Datatype data; TNode* rchild; TNode* lchild;};void CreatTree(TNode* &root){ char ndata; cin>>...原创 2018-05-24 21:37:55 · 1808 阅读 · 0 评论 -
邻接链表的BFS和DFS(简明版)
代码:#include<iostream>#include<queue>#include<cstdlib>#include<string>using namespace std;const int MaxSize=10;int visited[MaxSize];struct ArcNode{ int adjvex; ArcNode* ne...原创 2018-06-03 21:08:02 · 878 阅读 · 0 评论 -
邻接矩阵的BFS和DFS(简明版)
我的简洁看过就知道话不多说代码:#include<iostream>#include<cstring>#include<queue>using namespace std;#define Max 10char vertex[4]={'a','b','c','d'};//顶点int visited[Max],arc[Max][Max];void DFS(int v...原创 2018-06-03 21:03:41 · 2302 阅读 · 1 评论 -
QQ红包金额分配算法
最近对红包金额分配感兴趣,便整理了一个较简单的分配算法思路:主要是通过随机函数对金额随机分配,由于金额与份数不断变化,如何保证分配前等概率呢?本例是将金额等分,取得均值,但第一份取左和取右等概率,故其最大值为右份边界。代码: #include<iostream>#include<iomanip>#include <stdlib.h>...原创 2018-05-09 00:00:10 · 8334 阅读 · 30 评论 -
N枚硬币问题
问题定义:已知N枚硬币质量,其中有一枚假币(或轻或重),请找出假币思路:若N<3,无法判断 若范围缩小至一枚硬币,拿一枚真币比较轻重 若范围缩小至两枚硬币,拿一枚真币与其中一枚比较轻重,缩小范围至一枚硬币 若范围在三枚以上,将硬币三分,左边num/3枚,右边num/3枚,其余放中间(num为范围大小)。 4.1若左边硬币质量等于右边,缩小范围到中间 ...原创 2018-12-28 11:40:23 · 1976 阅读 · 4 评论