数据结构
烟雨迷离半世殇
战略转移到个人博客:lfzxb.top
展开
-
数据结构篇:二叉树(一:二叉树的创建,递归遍历及其他基础知识)
二叉树的相关概念<二叉树中的每个元素都叫结点> (1)结点的度。结点所拥有的子树的个数称为该结点的度。例如右图B结点度数为2 (2)叶结点。度为0的结点称为叶结点,或者称为终端结点。例如右图的F,D,C结点 (3)分枝结点。度不为0的结点称为分支结点,或者称为非终端结点。一棵树的结点除叶结点外,其余的都是分支结点。例如右图的A,B,E,左...原创 2018-10-20 21:16:23 · 1763 阅读 · 1 评论 -
数据结构篇:二叉树(四:交换左右子树)
应用递归思想如果结点不为空,就交换其左右子树,而待交换的左右子树,我们不需要关心是否为空。void Tree::ExChangeTree(BiTree *T) { BiTree *temp = new BiTree; if (T) { temp = T->rchild; T->rchild = T->lchild...原创 2018-11-28 17:48:41 · 26868 阅读 · 6 评论 -
数据结构篇:单链表倒置(带头结点/不带头结点)
带头结点初始化如图1.我们需要把1这个结点作为最后一个结点,所以要把1的next指向NULLh->next->next = nullptr; 2.然后我们要新建结点,指向HeadNext的下一位,并把HeadNext的下一位指向HeadPre,Inode *tempNode = HeadNext->next;HeadNext->next =...原创 2018-11-28 19:42:19 · 4235 阅读 · 1 评论 -
数据结构篇:单循环链表倒置(带头结点/不带头结点)
带头结点先去看一下单链表的倒置:https://blog.csdn.net/qq_15020543/article/details/84590642对于单循环链表,它与单链表区别是,它的最后一个结点将指向头结点(无头结点将指向第一个结点),构成一个循环.遍历循环链表的时候,结束标志是next指向head理解了这些基础概念,单循环链表的倒置也不难了完整函数Inode *Te...原创 2018-11-28 20:26:16 · 2191 阅读 · 0 评论 -
数据结构篇:邻接表基础(C#)
今天突发奇想利用C#实现邻接表(供参考),基本思想是把C++/C语言中的结构体改成类,基本思路一致,参考C++版https://blog.csdn.net/qq_15020543/article/details/84178417还是以这张图为例,我们在C#里面实现using System;using UnityEngine; /// <summary>...原创 2018-12-08 19:26:35 · 1902 阅读 · 1 评论 -
Unity实战篇:实现连连看死局判定(一:数据结构的选择以及基本思路概述)
最近在做连连看小游戏,整体完成的差不多,还差一个死局判定,若为死局,即重新洗牌。由于项目结构较为繁杂,建议大家先下载源码源码下载链接:https://gitee.com/NKG/UnityWorks/blob/master/UnityPackages/LinkUp.unitypackage和群里的大神讨论后,决定使用有向邻接表这一数据结构思想来实现这个目的。直接讲实现方法也没用,先...原创 2018-12-11 12:02:12 · 2979 阅读 · 3 评论 -
数据结构篇:校园最短路径导航(一:地图数据的配置以及图的建立)
首先去找一张学校的地图,并且自己配置好数据和路线在代码里面写好数据//地点信息char _mapName[32][50] = {"行政楼","实验楼D", "教学楼A", "篮球场", "足球场", "A4", "实验楼C", "教学楼B", "A2", "A6", "计算机系&qu原创 2018-12-04 12:32:11 · 18625 阅读 · 1 评论 -
Unity实战篇:实现连连看死局判定(二:具体实现)
要做死局判定,我们要明确在什么时候检察地图是否死局。刚刚初始化地图 每次消除之后 检查死局前我们也要同步更新有向邻接表字典和地图数组我们约定,数组值为-1代表此处为空遍历字典,找到要去除的元素,从字典删除 避免异常,删除元素后即退出函数 /// <summary> /// 改变邻接表 /// </summary&...原创 2018-12-11 12:02:17 · 1613 阅读 · 0 评论 -
数据结构篇:校园最短路径导航(三:地图图像显示以及完整程序)
首先是地图的显示,因为控制台限制,只能通过外部程序来显示图片如果你使用的是VC6.0或者Dev C++将准备好的图片放在工程根目录,命名为SchoolMap.png如果有小伙伴和我一样使用的是CLion的话,就把图片放到cmake-build-debug下面)在main函数里调用以下语句即可显示图片system("mspaint SchoolMap.png");可是问...原创 2018-12-04 12:32:27 · 18942 阅读 · 14 评论 -
数据结构篇:校园最短路径导航(二:弗洛伊德算法理解与应用)
求最短路径最常用的有迪杰斯特拉(Dijkstra)和弗洛伊德(Floyd)算法两种。本着简洁为王道的信条,我选择了Floyd算法。Floyd算法首先来看一个简单图,红色标记代表在数组的下标,橙色标记代表距离(边权值)我们用D[6][6]这个矩阵存储两点之间最短路径,用P[6][6]这个矩阵存储路径两个矩阵初始化如下,若两点不直接联通,则初始化为无穷大D[6][6] ...原创 2018-12-04 12:32:21 · 7057 阅读 · 0 评论 -
数据结构篇:邻接表创建与显示
每一个顶点后面就是一条链表,每个顶点都存在数组里。以这张图为例结构如下运行截图结构体定义//边表结点typedef struct EdgeNode { //顶点对应的下标 int adjvex; //指向下一个邻接点 struct EdgeNode *next;} edgeNode;//顶点表结点typedef struc...原创 2018-11-17 12:22:31 · 1293 阅读 · 0 评论 -
数据结构篇:#1034 : 毁灭者问题(C#)
前言:这篇文章用C#解决,所以并没有算法参考价值,我的目的也是熟悉C#,所以大家自己随意。正经解法(C++):https://blog.csdn.net/u014316038/article/details/46345145时间限制:10000ms单点时限:1000ms内存限制:256MB描述在 Warcraft III 之冰封王座中,毁灭者是不死族打三本后期时的一个魔法飞行单...原创 2018-10-30 11:13:40 · 314 阅读 · 0 评论 -
数据结构篇:二叉树(二:二叉树的非递归遍历)
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就 是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。递归遍历:https://blog.csdn.net/qq_15020543/article/details/83216722而对于树的遍历若采用非递归...原创 2018-10-29 10:14:52 · 460 阅读 · 0 评论 -
数据结构篇:单链表基础操作(二)
已知带头结点的单链表,存放一组整型数①创建n个元素的单链表②计算链表中值大于x的结点的个数,int countx(lnode *head,int x)③两个链表ha,hb存放整型数,每个链表中无相同元素,hc=ha∩hb,即ha和hb中相同元素放入hc中,void intersection(lnode *ha,lnode *hb,lnode *&hc)#include <...原创 2018-11-04 14:09:56 · 935 阅读 · 0 评论 -
数据结构篇:单链表基础操作(一)
本程序以类似应用程序的对话框形式进行单链表的操作。希望对大家的学习有所帮助。#include <iostream>using namespace std;typedef int ElemType;#define EMPTYLIST -1#define NOEMPTYLIST -2#define SUCCESS -3#define FAIL -4#define ...原创 2018-09-19 14:48:12 · 400 阅读 · 0 评论 -
数据结构篇:二叉树的基本应用(一)
二叉树递归算法,树中存放整型数①创建一棵树②构造递归算法,计算树中值大于x的结点的个数,int countx(Bitnode *t,int x) #include <iostream>using namespace std;typedef struct BiTree { int data; BiTree *lchild,*rchild;} Tree ;cl...原创 2018-11-04 14:47:10 · 2124 阅读 · 0 评论 -
数据结构篇:图的遍历(一:深度优先遍历)
深度优先遍历,也称作深度优先搜索,缩写为DFS深度优先遍历从某个顶点出发,访问此顶点,然后从v的未被访问的邻接点触发深度优先便利图,直至所有和v有路径想通的顶点都被访问到。这样我们一定就访问到所有结点了吗,没有,可能还有的分支我们没有访问到,所以需要回溯(一般情况下都设置一个数组,来记录顶点是否访问到,如果访问到就不执行DFS算法,如果未被访问过就执行DFS算法)以这张图为例我...原创 2018-11-21 20:32:28 · 63085 阅读 · 11 评论 -
数据结构篇:图的遍历(二:广度优先遍历)
广度优先遍历,又称广度优先搜索,缩写BFS如果说深度优先遍历是相当于树的前序遍历,那么,广度优先遍历就相当于树的层序遍历。以上面那张图为例就是,ABFCIGEDH代码实现void AdjacencyList::BFSTraverse(GraphAdjList *G) { EdgeNode *p; queue<int> Q; for (in...原创 2018-11-21 22:52:04 · 5497 阅读 · 2 评论 -
数据结构篇:二叉树(三:根据中序和后序遍历结果推算出完整二叉树)
我们先理解一下前中后序遍历,这是基础。//前序遍历void Tree::PreOrderTraverse(BiTree *T) { if(!T) { return ; } else { cout<<T->data<<" "; PreOrderTraverse(T->lchild); PreOrderTraverse(T->rch...原创 2018-11-24 14:53:23 · 2931 阅读 · 2 评论 -
博客说明:个人网站已搭建好,欢迎大家游玩(附教程)
说一下博客更新问题,CSDN还是我更新的首选,而在个人网站,可能你会更全面的认识我。.个人网站:lfzxb.top教程:(一)服务器,域名,空间的购买 (二)域名备案和OSS设置 (三)WordPress配置与OSS的使用 (四)WordPress主题分享以及常用功能 (完)博客的备份以及导入教程 (番外)把自己网站字体换成微软雅黑 (番外)为自己的OSS空间站申请SSL证...原创 2019-01-08 13:32:41 · 1497 阅读 · 0 评论