数据结构
小包包007
无论怎样,都要充满热情和拥有兴趣
展开
-
优化A*算法
场景:客户端发送起始位置和终点位置,服务器检测是否能够进行移动。相对于传统算法,服务器这时候不需要保存路径,并且利用位运算,增加减少对象的创建(即降低内存的使用)。package AStar;import java.util.HashMap;import java.util.Map;public class AStarNew { public static final int[][] NODES = { {0, 1, 0, 0, 0, 1, 0, 0, 0}, {0, 1,原创 2020-12-05 05:11:33 · 968 阅读 · 0 评论 -
JAVA 实际业务中高效的排行榜算法
排行榜两大功能,获取排行榜前几名,插入和更新。甚至需要锁,本类更可能的提高执行效率。import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Random;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * <pre> * 使用方法 * 1:写锁自动调用,但是读锁需要手动原创 2020-09-20 18:37:02 · 884 阅读 · 0 评论 -
数学在绘图中的应用可视化(判断点是否在多边形内,矩阵的二维旋转,矩阵的三维旋转)
前言:代码全部实现可视化,能够带来更直观的体验,java语言。1:判断点是否在多边形内这个问题最初遇到是我在毕设的游戏设计地图时候,如何防止玩家走出边界。思想可以参考 https://blog.csdn.net/u011722133/article/details/52813374就是通过计算一条射线和多边形的边相交点数判断。效果图如下,当然也可以实现任意的多边形。package Tools;import java.awt.*;import java.util.con..原创 2020-09-15 22:40:41 · 311 阅读 · 0 评论 -
树和二叉树的操作
#include <stdio.h>#include <stdlib.h>typedef struct BT{ char data; BT *right; BT *left;}BT;BT *Greatetree(){ BT *t; char c; scanf("%c",&c); getchar(); if(c=='0') t=NULL; else { t=(BT ...原创 2018-07-07 22:13:48 · 179 阅读 · 0 评论 -
数据结构之排序
目录:1.冒泡排序2.快速排序3.直接插入排序4.希尔(shell)排序5.直接选择排序6.堆(Heap)排序7.归并排序1.冒泡排序#include<stdio.h>//冒泡排序算法void bubbleSort(int *arr, int n) { for (int i = 0; i<n - 1; i++) for (int j = 0; j &l...原创 2018-07-11 23:28:56 · 176 阅读 · 0 评论 -
数据结构之队列
顺序储存和链式储存基础:结构体,数组,指针。本文编译环境:Dev c++ 5.4.0语言:c序言:顺序储存这点,关于假溢出的情况就不在讨论,直接讲他的升级版--循环队列,比如一个储存能力为4的队列,头如果分别是:0,1,2,3,那么对应的他的下一个位置就是:1,2,3,0。所以升级版做的事儿就是这个过程,不是再判断队尾是不是最后一个储存单元,而看的是如果头分别是:0,1,2,3,而且尾分别是...原创 2018-07-04 22:55:28 · 988 阅读 · 0 评论 -
数据结构之查找
查找原创 2018-07-10 19:54:05 · 159 阅读 · 0 评论 -
数据结构之求后缀表达式
顺序栈的简单例子基础:顺序栈。本文编译环境:Dev c++ 5.4.0语言:c序言:对栈的操作说清楚,当然应该写个小项目。这里要求比较多,数字在0—9,操作符只有+,-,*,/。这四个。#include<stdio.h>#include<stdlib.h>#define MAXLEN 100#define datatype char //结构体的建立typedef...原创 2018-07-03 19:54:43 · 2192 阅读 · 0 评论 -
数据结构之栈
顺序储存和链式储存基础:结构体,数组,指针。本文编译环境:Dev c++ 5.4.0语言:c序言:栈的操作和我上一篇介绍线性表的博客基本没什么区别,这里的话就强调下他们的不同点吧。对 线性表的操作主要有,创建,求长,查找,插入,删除和显示。先说顺序储存,其实就是利用数组来建立线性表,下面展示下顺序表的六个操作。#define MAXLEN 100#define datatype in...原创 2018-07-03 18:24:43 · 336 阅读 · 0 评论 -
数据结构之线性表
顺序储存和链式储存基础:结构体,数组,指针。本文编译环境:Dev c++ 5.4.0语言:c序言:结构创建时候的typedef的作用!!!在c和c++不一样在C中,必须用typedef,声明时就可以用 别名定义一个变量;而在C++中,有两种方式,方式一:不需要typedef即可定义,访问直接用别名访问数据,方式二:用typedef定义,访问必须先用别名定义变量,再访问数据。对 线性表的...原创 2018-07-02 19:28:24 · 370 阅读 · 0 评论 -
数据结构之图的深度优先遍历和广度优先遍历
基础:结构体,指针。本文编译环境:Dev c++ 5.4.0语言:c //代码可直接运行#include <stdio.h>#include <stdlib.h> #define maxsize 100 typedef struct ArcNode { int num; struct ArcNode *next;}ArcNode;ty...原创 2018-07-08 22:52:47 · 1282 阅读 · 0 评论