自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Floyd算法实现校园寻路(c++)

之前参加的外校项目,用FLoyd算法实现在校园内的最短路径查找,语言是c++。相比于Dijkstra算法,弗洛伊德算法中每一个顶点都是出发访问点,所以能依次将每一个顶点看做被访问顶点,求出从每一个顶点到其他顶点的最短路径;适合校园随机地点的巡路。

2022-11-22 17:46:28 434

原创 二分查找c++(递归)

用递归实现的一个demo,很简短。

2022-11-22 17:28:41 279 2

原创 汉诺塔c++可视化(人工智能实验)

这学期人工智能实验课要做汉诺塔,老师说最好实现可视化,于是想起了我大二那会儿刚学c++时编的一个小玩意,正好用在这,效果确实比较简陋,不过功能基本都实现了。注意设置好不同盘子的规格,每次精准地擦除和填充,不要涉及到多余的区域、每次擦除部分盘子后,柱子都要重新绘一次,否则看上去会短一截。每次只改变一个柱子最上方的盘子,状态改变的过程包括擦去一个柱子顶部的盘子、然后在另一个柱子顶部绘制移动后的盘子,用。也是简化起见,柱子用线段表示,盘子用矩形表示,绘制的时候分别使用。函数拖慢移动的过程,就实现了动态显示。

2022-09-26 10:19:11 1644 6

原创 Linux统计指定目录下文件夹总数及文件总数

第一条是输出根目录下文件夹总数,第二条是输出根目录下文件总数;这里根目录可以改成任意路径。

2022-08-24 17:27:25 782

原创 链队列c++

数据结构复习到队列,顺手写了个链队列demo,以链表类的形式存储队列,队列中的最小单位是节点Node结构体,考虑到链表在表头插入时间开销最小,为O(1),而进队列是在队尾完成,故把头结点作为队尾,尾结点作为队头,把进队列和出队列操作分别对应成链表的插入和删除函数。debug过程中碰到两个主要问题,似乎不是第一次犯的错了,记下来加深印象:1.定义数据成员Top和成员函数top的时候,不要弄重名!!!2.在写进队和出队函数时,不能仅仅用一行insert or Delete代替,因为链表插入或删除节点后,表头和表

2022-06-02 16:31:52 127

原创 堆排序c++(非常简便,含详细注释)

学校数据结构上完内排序,自己写了一个堆排序的demo,尽可能简化,使代码可读性强。

2022-06-01 17:40:12 220

原创 桶排序c++实现(适用于所有整型数组)

桶排序的思路基本就三步:1.按照数组的上下界与长度将其划分为若干个区间,对应若干个桶,将元素放入对应范围的桶里2.对每一个桶内部排序3.遍历所有桶,依次将桶中元素输出时间和空间开销都是O(n+k),n是数组长度,k是桶的个数。划分区间采取归一化策略;桶用二维数组动态分配内存;桶的内部排序采取快排,时间复杂度O(NlogN)。#include<iostream>#include<vector>using namespace std;void qu

2022-05-30 19:46:52 1109 2

原创 兔子与星空

学校poj平台上的题,考察最小生成树,这里用prim算法实现,思路见注释。#include<iostream>#include<vector>#define MAX 50using namespace std;bool visited[MAX];int dist[MAX];//已访问点集到未访问点i的最短距离;void prim(vector<vector<int>>& map,int &sum) { int n = map

2022-05-17 12:12:37 379

原创 输入一组数,以空格分隔,回车结束输入(唯一不会time limit的版本)

poj的超时判断给我恶心坏了int x = 0; char c = ' '; for (; c == ' ';) { scanf("%d", &x); c = getchar(); //Insert(r,x); }

2022-05-10 15:50:58 184

原创 树的镜面映射c++(含详细注释)

学习poj平台上的题,比较全面地考察了树的存储结构、相关函数及性质。原题:总时间限制:1000ms内存限制:65536kB描述一棵树的镜面映射指的是对于树中的每个结点,都将其子结点反序。例如,对左边的树,镜面映射后变成右边这棵树。  a a/ | \ / | \ bcf ===>fcb / \...

2022-05-01 18:00:04 486

原创 中缀表达式转后缀C++

中缀表达式转后缀C++转成后缀并求值,两个操作都实现了。#include<iostream>#include<stack>#include<vector>using namespace std;string intoPost(string infix);//中缀转后缀int calPost(string post);//后缀做运算int calculate(int a, int b, char opt);//四则运算bool isNumber(ch

2022-03-30 20:39:42 1118

原创 中缀表达式求值(C++版本 含详细注释)

中缀表达式处理的关键在于处理好括号,保证括号内的运算能优先进行。用一个字符栈保存运算符、一个数字栈(这里采用vector动态数组,因为方便修改末尾元素)保存运算结果。主要步骤如下:输入中缀表达式,从头开始遍历,若当前字符为开括号,直接入字符栈;若当前字符为闭括号,不断弹出字符栈顶运算符,直到栈顶为开括号,将其弹出;若当前字符为数字,将其转化成整型后压栈,注意超过一位的数要用一个bool变量判断当前位x情况,用x的前一位*10+x来更新x的前一位,不管是几位数,压进去的还是一个数字。若当前

2022-03-20 22:03:40 7723 11

原创 跳表查找C++demo(时间复杂度O(log n))通俗易懂的版本

跳表中的每个节点都有多层跳表指针,最高层数取决于链表长度n,层数每增加1,一次移动的距离就乘2,因此假设最高层数为h,到达目标节点可能的最远移动距离就是1+21+22+…+2h令它等于i,此时h也是最多的移动次数,可以解出h=log2(i+1)-1,移动次数最多不会超过这个值,所以显然时间代价是O(log n)级别的。具体的实现思路基本上注释都写到了,如果想进一步完善的话可以把跳表指针数量初始化为log n个。#include<iostream>using namespace std

2022-03-13 10:05:36 1971

原创 C++快速排序demo(含注释)

#include<iostream>using namespace std;int n = 0;int partition(int li[], int left, int right){ int tmp=0; tmp = li[left]; while (left < right) { while (left < right && li[right] >= tmp)//从右边找比tmp小的数...

2022-02-16 21:50:56 232

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除