
数据结构
waectr
这个作者很懒,什么都没留下…
展开
-
深度优先搜索(C语言组合数实例)
xxx+xxx=xxx 将数字1-9填入,每个数字只能用一次,需要获得组合思路:可以利用标记法来做,先定义a[10],来表示这9个数,从a[1]--a[9],每次这样我们就可以来标记这个数了.#include<stdio.h>int main(){ int a[10],i,total=0,book[10],sum; for(a[1]=1;a[1]<=9;a[1]...原创 2018-07-26 11:03:51 · 3101 阅读 · 2 评论 -
广度优先搜索(C语言实例)
我们得到一个二维数组,这个为维数组就像当一个坐标一样,它的上边有障碍物(在有障碍物的地方我们用1来表示,没障碍物的地方用0来表示),使用广度优先搜索,我们就要用到队列,具体的思路就是如下伪代码伪代码:void BFS(Vertex V){ //从V这个顶点开始遍历 visited[V]=true; //先对V进行确认 Enqueue(V,Q); //将V压...原创 2018-07-27 10:19:31 · 11415 阅读 · 1 评论 -
利用深度优先搜索和广度优先搜索来计算面积
利用深度优先搜索来计算面积,我们利用深度优先搜索将一天路径一直走下去,将走过的路进行标记,如果走到头,就返回,从它做过的路径返回,返回到直到在经过的点有其他路径时,继续从那条路径前进,例如这个图所走过的路径这里我们所计算的是这个二维数组不为0的值得个数,第一行4,4表示是a[4][4], 1,1表示从坐标1,1开始,这里我们创建举证时就是从1,1开始创建的#include<s...原创 2018-07-27 11:18:46 · 612 阅读 · 0 评论 -
数据结构 图论(一)
1.很多定义 -- 表示多对多关系 -- 一个图由顶点和边组成 -- 边又叫做弧 -- (v,w)表示 v-w 无方向 <v,w> 表示从v指向w的单行边 -- 不考虑重边和回路 ...原创 2018-07-23 08:26:48 · 4291 阅读 · 0 评论 -
求最短路径的算法总结
Floyd-Warshall算法这个算法所使用的基本思想是:如果我们要求两个点之间的最短距离,不一定是两个点之间的直达距离,有可能是经过转点后的距离,例如从A->B的距离为10,而从A->C的距离为5,从C->B的距离为4,如果我们走A->C->B的距离的话,那么就更短,如果确定这条路径是最短距离,那么也同样可以确定,A->C的最短路径为5,B->C的...原创 2018-07-28 11:26:43 · 679 阅读 · 0 评论 -
java实现动态数组
package array;//创建动态数组public class Array<E> {//使用泛型 private E[] data; private int size;//长度 public Array(int capacity) { data=(E[]) new Object[capacity]; size=0; } public Array()...原创 2018-10-14 21:47:18 · 9327 阅读 · 0 评论 -
哈夫曼树的创建及编码java
哈夫曼树是最优二叉树,它是根据一个结点的权值对结点进行排序这里我们实现的是输入一段文字,程序会根据各个文字出现的频率来获得文字的权重,因为使用的是哈夫曼树来存储,所以在编码时,我们要将使用频率高的编码放在容易找到的位置,所以放在哈夫曼树离根比较近的地方,这样在获得时就更加方便。代码实现如下: 详细的过程已经在代码里进行注释import java.util.ArrayList...原创 2018-11-10 13:57:21 · 1339 阅读 · 1 评论 -
通过栈来实现队列 通过队列来实现栈
通过栈来实现队列思路:我们每次将数push进栈stack1中,按照队列的方式要取的话,就要取最面的一个数,但是又不能直接取,这时就可以通过一个辅助栈stack2来,先将stack1中的所有元素每pop出一个push进stack2,将stack2中的第一个pop出来,再将stack2中的所有又push进stack1中具体代码实现public class MyQueue { Stac...原创 2019-01-21 20:25:43 · 176 阅读 · 0 评论