![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法(C++)
npchaha
这个作者很懒,什么都没留下…
展开
-
数据结构与算法:A*寻路算法的C++实现
任务:用整型二维数组模拟地图(1代表墙壁,0代表通路),给定起点坐标和终点坐标,用A*寻路算法查找最短路径main.cpp代码如下:#include <iostream>#include <vector>#define ROWS 12 //地图行数#define COLS 12 //地图列数#define SC 10 //直线代价#define OC 14 //斜线代价using namespace std;//地图节点原创 2020-11-05 09:44:00 · 425 阅读 · 0 评论 -
数据结构与算法:广度寻路算法的C++实现
任务:初始化一个10*10的地图(利用整型变量模拟,1代表墙壁,0代表通路),给定起始位置和目标位置,利用广度寻路算法找到最短路径。main.cpp代码如下:#include <iostream>#include <vector>#define ROWS 10#define COLS 10using namespace std;//枚举类型,表示探索方向enum Direct { D_up, D_right, D_down, D_left};//定义辅原创 2020-11-03 04:08:03 · 183 阅读 · 0 评论 -
数据结构与算法:深度寻路算法的C++实现
任务:使用C++实现深度寻路算法。效果:在一张由1和0组成的二维地图中,1代表墙壁,0代表通道,输入终点和起点,利用深度寻路算法找出由起点到终点的路径。main.h代码如下:#include <iostream>#include "MyStack.h"#include "windows.h"//地图行数,列数#define ROWS 8#define COLS 8using namespace std;//枚举类型,探索方向enum Direct {D_up,原创 2020-11-02 21:20:46 · 685 阅读 · 4 评论 -
数据结构与算法:利用数组实现完全二叉树(C++)
任务:使用C++语言,通过数组的形式来实现一颗平衡二叉树,包括树的创建,添加结点,查找结点,删除结点等功能。main.cpp 代码如下:#include "CompleteBinaryTree.h"int main(){ CompleteBinaryTree<char> tree; for (int i = 0; i < 10; i++) { tree.Add('A' + i); } cout << "先原创 2020-10-31 02:57:17 · 1468 阅读 · 0 评论 -
数据结构与算法:有序二叉树的C++实现
任务:利用C++实现升序二叉树算法,包括二叉树的创建、先序遍历、中序遍历、后序遍历以及增删改查等功能。main.cpp代码如下:#include <iostream>#include "BinaryTree.h"using namespace std;int main(){ Tree<int> tree; //插入若干结点 tree.insert(23); tree.insert(588); tree.insert(45原创 2020-10-30 03:00:49 · 136 阅读 · 0 评论 -
数据结构与算法:初识树
任务:使用C++编写一个简单的树类型头文件Tree.h如下:#pragma once#include <string.h>//定义树类型template <class T>class MyTree { T data; // 数据 MyTree* pParent; // 父节点地址 MyTree* pBrother; // 兄弟节点地址 MyTree* pChild; // 子节点地址public: MyTree(); ~MyTree();原创 2020-10-16 01:06:37 · 86 阅读 · 0 评论 -
数据结构与算法:汉诺塔问题(C++)
任务:利用C++编码解决汉诺塔问题汉诺塔问题简介:相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。代码如下:#include <iostream>#define NU原创 2020-10-15 19:22:43 · 1214 阅读 · 0 评论 -
数据结构与算法:二分查找的C++实现
任务:分别用递归和循环两种方式实现二分查找算法(在某有序数组中查找特定的数字并返回其在数组中的下标)代码如下:#include <iostream>#define NUM 20using namespace std;void Print(int* a, int len); // 显示当前数组void BinarySearch_Recursion(int* a, int left,int right,int value); // 二分查找(递归实现)void Binar原创 2020-10-15 18:03:12 · 239 阅读 · 0 评论 -
数据结构与算法:归并排序的C++实现
任务:利用C++实现归并排序代码如下:#include <iostream>#include <string>#define NUM 10using namespace std;void Print(int a[], int len); // 打印数组信息void Merge(int* a, int l, int m, int r); // 有序数组合并void Recursion(int* a, int l, int r); // 合并递归void原创 2020-10-15 00:43:17 · 188 阅读 · 0 评论 -
数据结构与算法:桶排序的C++实现
任务:利用C++实现桶排序代码如下:#include <iostream>#define NUM 10#define RANGE 999using namespace std;void Print(int a[], int len);//打印数组信息void BucketSort(int a[], int len);//桶排序排序算法(从小到大排序)int main(){ int a[NUM] = { 3,28,19,789,3,5,0,12,156,7 };原创 2020-10-14 20:53:12 · 363 阅读 · 0 评论 -
数据结构与算法:基数排序的C++实现
任务:利用C++实现基数排序代码如下:#include <iostream>#define NUM 10using namespace std;void Print(int* a, int len);//打印当前数组void RadixSort(int* a, int len, int max);//基数排序int main(){ int a[10] = { 2,4,5,6,3,8,7,1,0,9 }; cout << "before sort: "原创 2020-10-14 16:16:24 · 133 阅读 · 0 评论 -
数据结构与算法:希尔排序的C++实现
任务:用C++实现希尔排序代码如下:#include <iostream>#include <vector>#define num 10using namespace std;void Print(int a[], int len);//打印数组信息void Insert_Sort(int a[], int len);//简单插入排序算法(从小到大排序)void Shell_Sort(int a[], int len);//希尔排序(从小到大排序)原创 2020-10-14 02:02:49 · 144 阅读 · 0 评论 -
数据结构与算法:初识容器与迭代器
任务:使用Vector容器实现基本的增删减查功能代码如下:#include <iostream>#include <vector>using std::cout;using std::vector;using std::endl;int main(){ vector<int> v; vector<int>::iterator it;//定义迭代器 v.push_back(99); v.push_back(1); v.p原创 2020-10-13 11:59:15 · 65 阅读 · 0 评论