C
Vivid-victory
○( ^皿^)っHiahiahia…
展开
-
【机器学习】人工智能实验一:A*算法求解 8 数码问题(启发式搜索)(纯代码)
一、网上代码修改版:1、直接上代码:代码参考于:A*算法(解决八数码问题)#include<bits/stdc++.h>#define maxn 1010 //用于设置OPEN表和COLSE表(顺序表)结点的个数 #define N 3 //4typedef struct node { //八数码结构体 int a[N][N]; //二维数组表示八数码的主要状态 ...转载 2019-11-10 22:12:46 · 6385 阅读 · 1 评论 -
计算机图形学1——Bresenham's Line Algorithm
实验一:Bresenham’s Line Algorithm不同象限不同斜率画法思路如下:(为滤清思路临时打的草稿)// ====== Computer Graphics Experiment #1 ======// | Bresenham's Line Drawing Algorithm |// | ...转载 2018-11-24 18:35:15 · 1586 阅读 · 0 评论 -
计算机图形学2——Line Style and Line Width
计算机图形学实验:通过控制’q’改变线形通过控制’w’改变线宽完整代码如下:// ====== Computer Graphics Experiment #4 ======// | Line style using pixel mask |// | and line width |// ========...转载 2018-11-24 18:44:19 · 307 阅读 · 0 评论 -
计算机图形学3——Boundary-Fill Algorithm
图形学实验:边界填充多边形算法算法原理如下:种子像素入栈,当栈非空时重复执行如下三步操作:(1)栈顶像素出栈(2)将出栈像素置成要填充色(3)按左、上、右、下顺序检查与栈像素相邻的四个像素,若其中某个像素不在边界且未置成填充色,则把该像素入栈核心代码如下:void Boundaryfill (int seedx,int seedy){ CMyStack stk1; lon...原创 2018-11-24 19:00:22 · 612 阅读 · 0 评论 -
数据结构——稀疏矩阵的转置算法
本篇文章的代码基于【数据结构】【严蔚敏】【清华大学】不是很想分函数来一遍解释信息基本上都在注解里直接上完整代码好了#include <stdio.h> #include <stdlib.h>#define MAXSIZE 100 // 非零元个数的最大值typedef int ElemType; typedef int Status; #define OK...原创 2018-12-02 15:29:06 · 629 阅读 · 0 评论 -
数据结构——求一个串中出现的第一个最长重复子串
补充实验:求一个串中出现的第一个最长重复子串。输入串:36123459836121234569求最长重复子串:原串:36123459836121234569最长重复子串:12345关于这个问题有KMP优化,暂时还没掌握下面这个算法在输入输出方面还有待优化#include &amp;lt;stdio.h&amp;gt;#define MaxSize 100typedef struct { cha...原创 2018-11-26 19:22:16 · 2889 阅读 · 0 评论 -
计算机图形学4——Two-Dimensional Transformation(二维几何变换)
实现二维坐标变换矩阵(平移,旋转,缩放)的生成环境:Code::Blocks 17.12完整代码如下:// ====== Computer Graphics Experiment #5 ======// | Two-Dimensional Transformation |// =============================================...原创 2018-12-01 15:31:42 · 2189 阅读 · 1 评论 -
树和二叉树1——链式二叉树基础
本文代码基于【数据结构】【严蔚敏】【清华大学】包含了大多数二叉树的基本操作1.准备部分的代码:用c++其实就是用了个max()函数#include <stdio.h>#include <stdlib.h>//malloc和exit函数所需头文件 #include <iostream>using namespace std;#define MaxS...原创 2018-12-08 16:27:52 · 195 阅读 · 0 评论 -
树和二叉树2——输出广义表形式(带括号)二叉树
二叉树的基本运算如下(显示的结果):(1)创建二叉树(2)输出二叉树:A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)) (3)H 结点:左孩子为 J 右孩子为 K(4)二叉树 bt 的高度:7(5)释放二叉树 bt如何输出带括号二叉树?这里用的是根结点和其他结点递归函数分离的方式完成的,即在pre_order_traveral_brackets()中运行遍历根...原创 2018-12-08 16:35:57 · 3195 阅读 · 0 评论 -
树和二叉树4——定位结点值为 x 的二叉树结点的层次
问题描述:定位二叉树 bt 中结点值为 x 的结点及其所在的层次。这里只定位了层次,求路径请看下一篇文章:树和二叉树5#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;...原创 2018-12-09 19:55:06 · 2171 阅读 · 2 评论 -
树和二叉树5——先序遍历输出叶子到根的逆路径
问题描述:采用先序遍历方法输出所有从叶子结点到根结点的逆路径。输出结果如下:二叉树 b:A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))先序遍历方法:D 到根结点逆路径: D->B->AJ 到根结点逆路径: J->H->E->B->AL 到根结点逆路径: L->K->H->E->B->AN 到...原创 2018-12-09 20:03:24 · 2379 阅读 · 0 评论 -
图——邻接矩阵和邻接表基本存储及转换算法
代码基于:【数据结构】【严蔚敏】【清华大学】【邻接矩阵和邻接表相互转换算法】问题描述:该算法的设计,要求运行结果如下所示:图 G 的邻接矩阵:0 1 1 0 0 0 0 01 0 0 1 1 0 0 01 0 0 0 0 1 1 00 1 0 0 0 0 0 10 1 0 0 0 0 0 10 0 1 0 0 0 1 00 0 1 0 0 1 0 00 0 0 1 1 0 0...原创 2018-12-23 20:13:11 · 8965 阅读 · 7 评论 -
【暴力】 hdu 5879 Cure(字符串存储无限大数应用)
Given an integer n, we only want to know the sum of 1/k2 where k from 1 to n.InputThere are multiple cases. For each test case, there is a single line,containing a single positive integer n. The...原创 2019-01-29 21:53:42 · 228 阅读 · 0 评论 -
关于C语言进位问题的小测试(直接去尾or四舍五入)
知识点:1、直接a = (int)f;会直接去尾,若要四舍五入可以这么用: a = (int)(f+0.5);2、浮点数采用 printf(“f = %.0f\n”,f);形式是会四舍五入的3、floor() ceil()所需头文件为 #include&amp;lt;math.h&amp;gt;测试内容见代码注解:#include &amp;lt;stdio.h&amp;gt;#include&amp;原创 2018-11-24 15:30:52 · 2017 阅读 · 0 评论 -
数据结构——递归求数字旋转方阵
【数字旋转方阵问题】问题描述:输出下图所示N×N(N≥1)的数字旋转方阵。要求:采用递归法实现。提示:注意观察A、B、C、D四个区域。void FillInNum(int number, int begin, int MatrixSize){ // 从数字number开始填写, 例如从1开始填写;// MatrixSize为N维方阵,第一个填充的左上角的下标为(begin, beg...原创 2018-11-18 14:46:27 · 1365 阅读 · 0 评论 -
数据结构【清华严蔚敏】——单链表的基本运算
单链表的基本运算如下: (1)初始化单链表head (2)依次采用尾插法插入a,b,c,d,e元素 (3)输出单链表head:a b c d e (4)单链表head长度:5 (5)单链表head为非空 (6)单链表head的第3个元素:c (7)元素a的位置:1 (8)在第4个元素位置上插入f元素 (9)输出单链表head:a b c f d e ...原创 2018-11-09 18:52:48 · 792 阅读 · 0 评论 -
数据结构——求单链表排序
求单链表排序集合的运算如下:原 集 合A: c a e h原 集 合B: f h b g d a有序集合A: a c e h有序集合B: a b d f g h代码中包含三个关于排序的自定义函数,均是冒泡排序排序方法1:交换结点,多定义了一个指针排序方法2:交换数据,结点不变排序方法3:参考网上代码,优化交换结点排序#include &lt;stdio.h&gt;#inclu...原创 2018-11-10 15:53:15 · 271 阅读 · 0 评论 -
数据结构——求集合(单链表)的并、交和差运算:
求集合(用单链表表示)的并、交和差运算:问题描述:该算法的设计,要求运行结果如下所示:(包含三种排序)集合的运算如下:原 集 合A: c a e h原 集 合B: f h b g d a有序集合A: a c e h有序集合B: a b d f g h集合的并C: a b c d e f g h集合的交C: a h集合的差C: c e#include <stdio.h&g...原创 2018-11-10 16:01:07 · 12961 阅读 · 0 评论 -
数据结构——从顺序表中删除重复的元素
问题描述:设计一个算法从顺序表中删除重复的元素,并使剩余元素间的相对次序保持不变。例如:原顺序表为{4 2 8 4 2 1 2 1 3 5 2},执行该算法后,顺序表为:{4 2 8 1 3 5}。另外,顺序表的初始值通过调用算法initRandomize(int *arr, int n, int min, int max)产生。关于rand(),srand()相关基础知识参考以下内容:...转载 2018-11-10 17:18:57 · 16683 阅读 · 0 评论 -
数据结构——栈与队列操作(用栈模拟队列)
【栈与队列操作】问题描述:假设有两个长度相同的栈 S1,S2,已知以下入栈、出栈、判栈满和判栈空操作:void Push(S,x);Elemtype Pop(S);bool StackFull(S);bool StackEmpty(S);现用这两个栈构成一个队列,实现入队列、出队列操作的算法:bool EnQueue(x);Elemtype DeQueue(S);要求:(1)设...原创 2018-11-13 20:27:31 · 842 阅读 · 0 评论 -
【递归】数据结构——栈的应用(递归经典:Hanoi汉诺塔)
代码来源于:【数据结构】【严蔚敏】递归经典问题:汉诺塔(插个题外话哈,Hanoi是越南首都河内)思路(关键理解点):假设只有两个盘子(实在没法完全理解全部过程的,把两个盘子的过程捋清楚了,代码也就记住了)(n=2,x=a,y=b,z=c){hanoi(1,x,z,y);{move(x,1,z)//这里的z在(n=2,x=a,y=b,z=c)实际为b盘1号盘:a-&amp;amp;gt;b}m...转载 2018-11-11 19:18:52 · 325 阅读 · 0 评论 -
数据结构——顺序栈(动态分配空间)的基本操作
代码主要来源:【数据结构】【清华大学】【严蔚敏】顺序栈S的基本运算如下:(1)初始化栈S(2)栈为空(3)依次进栈元素a,b,c,d,e(4)栈为非空(5)出栈序列:e d c b a(6)栈为空(7)释放栈完整代码如下:#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt; #define STACK_INIT_SIZE转载 2018-11-11 20:29:52 · 1857 阅读 · 0 评论 -
数据结构——循环队列(动态分配空间)基本运算
代码主要来源:【数据结构】【清华大学】【严蔚敏】循环队列基本运算如下:(1)初始化队列Q(2)依次进队列元素a,b,c(3)队列为非空(4)出队一个元素a(5)依次进队列元素d,e,f(6)出队列序列:b c d e f(7)释放队列完整代码如下:#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;#define OK转载 2018-11-11 21:50:56 · 1260 阅读 · 0 评论 -
数据结构——链队列的基本算法
代码主要来源:【数据结构】【清华大学】【严蔚敏】关于栈和队列的基本操作概括起来主要的内容有以下八种:构造、销毁置空、判空取头、求长输入、输出下面的代码包括了基本八种外加一个Status QueueTraverse(LinkQueue Q,void(*vi)(QElemType))函数//++++++++++++++++++++ 链队列 +++++++++++++++++++++++...转载 2018-11-11 22:21:17 · 1503 阅读 · 0 评论 -
数据结构——静态顺序栈的基本操作
代码主要来源:【数据结构】【清华大学】【严蔚敏】/代码背景是基于书上的,可内容确实是自己理解后敲的,这不禁让人思考(纠结)原创的定义了/顺序栈S的基本运算如下:(1)初始化栈S(2)栈为空(3)依次进栈元素a,b,c,d,e(4)栈为非空(5)出栈序列:e d c b a(6)栈为空(7)释放栈//本题静态栈,不用有释放空间的步骤,非要释放可以用memset(a,0,MAXSI...原创 2018-11-17 21:12:14 · 568 阅读 · 0 评论 -
数据结构——递归法求解栈中最大值和最小值
【递归法求解最大值和最小值】问题描述:若一个无序的线性表A[MaxSize]采用顺序存储方式,元素类型为整型数。试写出递归算法求出A中的最大元素和最小元素。要求: 顺序表的数据通过调用算法initRandomize()随机产生。#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define OK 1#define ERROR 0#de...原创 2018-11-18 13:53:11 · 2481 阅读 · 1 评论 -
数据结构——有关于栈和队列的小归纳
一、这里总结下栈和队列分类方法:按分配存储空间分:动态分配空间、静态分配空间;按存储结构(物理结构)分:顺序存储、链式存储;二、链式都是动态分配存储空间,所以一共有六类:1、动态分配空间的顺序栈(写过,是书上主推的方法)2、静态分配空间的顺序栈(写过,方法简单易懂)3、动态分配空间的链式栈(没写过,关键是用头插法倒序)4、动态分配空间的循环队列(写过,书上主推写法之一,这里动态分...原创 2018-11-17 21:19:52 · 194 阅读 · 0 评论 -
数据结构【清华严蔚敏】——顺序表的基本运算
顺序表的基本运算如下: (1)初始化顺序表L (2)依次插入a,b,c,d,e元素 (3)输出顺序表L:a b c d e (4)顺序表L长度:5 (5)顺序表L为非空 (6)顺序表L的第3个元素:c (7)元素a的位置:1 (8)在第4个元素位置上插入f元素 (9)输出顺序表L:a b c f d e (10)删除L的第3个元素 (11)输出顺序表L:...原创 2018-11-09 18:48:59 · 3869 阅读 · 0 评论