c++
霸道总裁爱上网
这个作者很懒,什么都没留下…
展开
-
指针与数组的区别
1、概念数组:存储连续多个相同类型的数据;指针:变量,存的是地址2、赋值同类型的指针变量可以相互赋值,数组不行,只能一个一个元素的赋值或拷贝3、存储方式数组:连续内存空间。指针:灵活,可以指向任意类型的数据。指向的是地址空间的内存。4、sizeof数组的sizeof求的是占用的空间(字节)。在32位平台下,无论指针的类型是什么,sizeof(指针名)都是4,在64位平台下,无论...原创 2020-04-25 10:30:47 · 283 阅读 · 0 评论 -
递归交换链式二叉树的左右子树
void swap(BiTree b){ if(b) { swap(b->lchild); //递归交换左子树 swap(b->rchild); //递归交换右子树 BiTNode *temp = b->lchild; //交换左右结点 b->lchild = b->rchild; b->rchild = temp; }}王道数...原创 2019-12-09 11:12:09 · 294 阅读 · 0 评论 -
C++中“->”和“.”使用区别
->是指针指向其成员的运算符.是结构体的成员运算符最大的区别是->前面放的是指针,而.前面跟的是结构体变量struct A{ int a;};A *point;point->a = 1;//->形式A object;object.a = 1;//.形式...原创 2019-11-29 19:59:01 · 205 阅读 · 0 评论 -
Dijkstra算法求单源最短路径
Dijkstra算法只能求某一个点到其他所有点的最短路径,所以叫单源最短路径int min(int a, int b){ return a > b ? b : a;}void Dijkstra(int SP){ int n;//总共n个点 int dis[MaxSize];//起始点SP到其他点的距离 int map[MaxSize][MaxSize];//图中各点间的路径...原创 2019-10-30 20:50:13 · 278 阅读 · 0 评论 -
深度优先搜索DFS
递归代码如下bool visited[MaxSize];void visit(int v); //泛指对v操作的函数,未初始化void DFS(Graph G, int v){ visit(v);//访问点v visited[v] = true;//标记v点已经访问 for (int w = FirstNeighbor(G, v); w >= 0; w = NextNeighb...原创 2019-10-29 21:09:48 · 166 阅读 · 0 评论 -
广度优先搜索BFS
代码如下bool visited[MaxSize]; //标记数组SqQueue Q; //声明图Q,未实际输入void visit(int v); //泛指对v操作的函数void BFS(Graph G, int v){ visit(v); visited[v] = true; //对v做已标记访问 EnQueue(Q, v); //顶点v入队 while (!isEmpty(...原创 2019-10-29 21:01:10 · 169 阅读 · 0 评论 -
Floyd算法求各顶点最短路径
Floyd算法求各顶点最短路径for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) for(int k = 1; k<=n; k++ if (map[i][j] > map[i][k] + map[k][j]) //在Vi与Vj之间,先走点Vk的距离比原来Vi直接到Vj的距离要短 map...原创 2019-10-29 20:24:32 · 231 阅读 · 0 评论 -
以先序序列输出一棵二叉树中的所有结点的数据值及结点所在层次
先序序列输出二叉树所有结点,及结点所在层次void PreAndLevel(BiTree T, int i) //以先序序列输出一棵二叉树中的所有结点的数据值及结点所在层次{ //第一次调用为PreAndLevel(T, 1); if (T != NULL) { printf("data=%d,level=%d", T->data, i); PreAndLevel(T-&g...原创 2019-10-23 22:03:38 · 8411 阅读 · 9 评论 -
交换二叉树中每个结点的两个子女
交换子女void Exc(BiTree T) //交换二叉树中每个结点的两个子女{ if (T->lchild != NULL) Exc(T->lchild); if (T->rchild != NULL) Exc(T->rchild); BiTNode *p; p = T->lchild; T->lchild = T->rchild...原创 2019-10-23 22:02:06 · 1887 阅读 · 0 评论 -
计算二叉树中各结点的最大元素的值
求所有结点的最大值int Get_Max(BiTree T) //计算二叉树中各结点中的最大元素的值{ if (T == NULL) return 0; int maxl = Get_Max(T->lchild); int maxr = Get_Max(T->rchild); int max = maxl > maxr ? maxl : maxr; //max为m...原创 2019-10-23 22:00:02 · 8937 阅读 · 4 评论 -
计算指定结点*p所在的层次
求指定结点的层次int GetLevel(BiTree T, BiTNode *p) //计算指定结点*p所在的层次{ if (T == NULL) return 0; if (T == p) return 1; //找到所在层,第一层 int depl = GetLevel(T->lchild, p); int depr = GetLevel(T->rchild...原创 2019-10-23 21:58:42 · 4716 阅读 · 3 评论 -
从二叉树中删去所有叶结点
删除所有叶子结点void Del_0(BiTree T) //删除叶子结点{ BiTNode *p = T; if (p == NULL) return; else if (p->lchild == NULL && p->rchild == NULL) free(p); Del_0(T->lchild); Del_0(T->rchild...原创 2019-10-23 21:53:49 · 8897 阅读 · 28 评论 -
统计二叉树的宽度
求二叉树每一层的宽度void LevelWidth(BiTree T, int a[], int h) //求每一层的宽度{ //第一次调用为LevelWidth(T,a,1); if(T!=NULL) { a[h] + 1; LevelWidth(T->lchild, a, h + 1); LevelWidth(T->rchild, a, h + 1); }}...原创 2019-10-23 21:51:22 · 4435 阅读 · 16 评论 -
统计二叉树的高度
求二叉树的高度int Height(BiTree T) //递归求树的高度{ if (T == NULL) return 0; int ldep = Height(T->lchild); //结点左子树高度 int rdep = Height(T->rchild); //结点右子树高度 if (ldep > rdep) //取二者中更大的+1即树的高度 ret...原创 2019-10-23 21:47:52 · 1604 阅读 · 0 评论 -
统计二叉树度为0、1、2的结点
二叉树数据结构定义typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild;}BiTNode, *BiTree;统计二叉树中度为0的结点(叶子结点)int ConNode_0(BiTree T){ int i = 0; //i记录度为0的结点(叶子结点)数量 if (T) //如果T存在 { if...原创 2019-10-20 22:48:27 · 5006 阅读 · 4 评论 -
c++申请动态数组
c++申请动态数组int n;cin>>n;int *a=new int[n];delete[] a;原创 2019-03-21 15:52:18 · 480 阅读 · 0 评论 -
全局变量与局部变量数组未初始化的结果
1.全局变量数组未初始化,则其默认值全为0;2.局部变量数组未初始化,则其默认值为-858993460(垃圾值);全局变量、静态变量处于数据区,未初始化,默认值为0 。局部变量处于堆栈区,其数值是随机的,即当时内存中的值。// test.cpp: 定义控制台应用程序的入口点。#include "stdafx.h"#include<iostream>using namesp...原创 2019-03-30 15:27:45 · 3516 阅读 · 0 评论 -
0/1背包问题
0/1的意思就是判断一个物体到底要不要放到包里面根据背包的空间、物品的重量以及其价值可以求出一个表格这个表格的意义就是指出以当前背包的容量,能装下的价值最大的所有物品以该数据为例:重量:2 3 4 5价值:3 4 5 6(重量与价值上下一一对应)即背包容量为1时什么都装不了;容量为2时能装下价值为3的一个物品;容量为3时能装下价值为3或者为4的物品,由于要尽可能多的装价值高的物品,...原创 2019-04-13 15:38:23 · 173 阅读 · 0 评论 -
辗转相除法求最大公约数
辗转相除法:求a和b的最大公约数cif(a%b!=0){ temp=a%b; a=b; b=temp;}return b;//a>=b证明:因为ab=k…r\frac{a}{b}=k…rba=k…r所以a=k∗b+ra=k*b+ra=k∗b+r设a,b最大公约数为c,则 a=m∗ca=m*ca=m∗c , b=n∗cb=n*cb=n∗c所以m∗c=...原创 2019-04-26 15:07:58 · 685 阅读 · 0 评论 -
HDU 1166 敌兵布阵
Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中...原创 2019-05-22 14:15:33 · 98 阅读 · 0 评论 -
HDU1863 畅通工程
畅通工程Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 43631 Accepted Submission(s): 19523Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交...原创 2019-05-13 16:35:35 · 115 阅读 · 0 评论 -
c++中方int转string的方法
c++中int转string的方法1.利用stringstream://需要加入头文件#include<sstream>int n=121;stringstream cop;cop<<n;string s=cop.str();原创 2019-03-21 15:17:55 · 181 阅读 · 0 评论