![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Data Structures and algorithms
Rookie on the road
这个作者很懒,什么都没留下…
展开
-
有限集合获取随机值-----洗牌算法
#include<stdio.h>#include<stdlib.h>#define max 20/*从一个有限的集合中随机取值,获取的值不重复取出,直到所有值都取出之后,重新计数arr:有限集合,随机值的取值范围pos:取出的随机值的标记,size:有限集合的大小return :有限集合中获取的随机值*/int GetRandomValue(int *arr,int *pos,int size){ int value,temp; if(*pos ...原创 2022-03-16 19:53:36 · 782 阅读 · 0 评论 -
骑士走棋盘
描述:骑士旅游( Knight tour)在十八世纪初倍受数学家与拼图迷的注意,它什么时候被提出已不可考,骑士的走法为西洋棋的走法,骑士可以由任一个位置出发,然后走完棋盘上的每个位置解法:解法骑士的走法,基本上可以使用递回来解决,但是纯粹的递回在维度大时相当没有效率,一个聪明的解法由J.C. Warnsdorff在1823年提出,简单的说,先将最难的位置走完,接下来的路就宽广了,骑士所要走的...原创 2019-11-06 08:54:59 · 203 阅读 · 0 评论 -
暴力迷宫
迷宫解法:每个单元格的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止。#include<stdio.h>#define ARRAY_X 6#define ARRAY_Y 6int entrance_x = 0,entrance_y = 0; //入口int exit_x...原创 2019-11-05 10:46:48 · 124 阅读 · 0 评论 -
巴斯卡三角形
#include<stdio.h>#define N 8long combi(int n,int r){ int i; long p = 1; for(i = 1;i <= r;i++) p = p*(n-i+1)/i; return p;}int main(){ int n,r,t; for(n = 0; n <= N;n++) { ...原创 2019-11-04 16:49:43 · 99 阅读 · 0 评论 -
堆栈
堆栈(stack)其特点是先进后出堆栈是最容易实现的ADT之一,其基本操作通常称为push和pop,push操作是把一个新值压入到堆栈顶部,而pop操作是把堆栈顶部的值移出堆栈并返回这个值1. 数组实现堆栈#include<stdio.h>#include<assert.h>#include<stdlib.h>#define STACK_SIZ...原创 2019-10-24 10:48:27 · 131 阅读 · 0 评论