![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
灰色大猫
这个作者很懒,什么都没留下…
展开
-
图的基本操作(基于邻接表
public class AdjListGraph extends AbstractGraph{ protected LinkedMatrix adjlist;//图的邻接表 public AdjListGraph(int length){ super(length);//构造长度为length的空顺序表 this.adjlist = new LinkedMatrix(length,l原创 2017-11-28 20:05:36 · 971 阅读 · 0 评论 -
广义表的概念和基本实现(基于Java语言
广义表是一种复杂的数据结构,是线性表的拓展,可以表示树结构和图结构。广义表在文本处理,人工智能,计算机图形学中有着广泛的应用。1.广义表的定义广义表是n(n>=0)个数据元素a0, a1, a2, a3...an-1构成的有限序列。其中ai(0<=i<n)是原子或广义表,原子是不可分解的数据元素。广义表的元素个数n为广义表的长度。当n = 0,则该广义表为空表。广义表的深...原创 2019-04-01 21:13:46 · 749 阅读 · 1 评论 -
顺序队列和链式队列的实现(基于Java语言
package testQueue;public interface Queue<T> { public abstract boolean isEmpty(); public abstract boolean add(Object x); public abstract T peek(); public abstract T poll();}1. 顺序队列顺序...原创 2019-03-17 15:41:00 · 501 阅读 · 0 评论 -
顺序表和单链表的基本实现(基于Java
顺序表:package test;public class SeqList { protected Object[] element;//设置一定长度的对象数组,利用数组实现顺序表的顺序存储和随机存取 protected int n; public SeqList(int length){ this.element = new Object[length]; this.n...原创 2019-03-15 21:02:10 · 926 阅读 · 0 评论 -
栈的应用——计算器中缀表达式转后缀表达式
package test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Stack;public class ExpressionTransfer { public static StringBu...原创 2019-03-10 16:06:36 · 260 阅读 · 0 评论 -
字符串匹配——KMP算法详解
啊嘞...已经在word里准备好惹,但是感觉好像这里编辑器不太会用或者说不太完全...截图吧内容基本上参考于第四版数据结构与算法(电子工业出版社)。断断续续研读了几天,自己理了一下。好了,这是next改进之前的代码package test;public class KMP { public static void main...原创 2019-03-04 22:40:22 · 375 阅读 · 0 评论 -
图的邻接表表示
无向图的邻接表表示有向图的邻接表表示1.出边表:第I行边单链表存储以顶点vi为起点的所有边.2.入边表:第j行边单链表存储以顶点vj为终点的所有边有向图的邻接表表示有两种:1.由出边表构成邻接表 2.由入边表构成逆邻接表原创 2017-11-28 13:44:02 · 1465 阅读 · 0 评论 -
图的基本操作(基于邻接矩阵
本文是数据结构(Java版)中国工信出版集团一书的读书笔记图的插入操作包括插入顶点和插入边1.weight范围:weight 在0到正无穷之间。若越界,则无边,取值是正无穷2.若I、j满足:0≤I,j3.i==j,自身环,抛出无效参数异常public void insertEdge(int i,int j,int weight){ if(i != j){原创 2017-11-28 12:43:03 · 2131 阅读 · 0 评论 -
图的基本概念及其抽象数据类型
内容是数据结构(java)第四版 中国工信出版集团的部分笔记图是由顶点集合以及顶点之间关系集合组成的一种数据结构。无向图中的边没有方向,每条边用顶点间无序对表示(vi,vj)。有向图的边有方向,每条边用两个顶点的有序对表示。完全图就是指图的边数达到最大值。无向完全图的边数为n(n-1)/2,有向完全图的边数为n(n-1)。带权图是指图中的边有权值原创 2017-11-28 10:55:44 · 2734 阅读 · 0 评论 -
最小生成树的两种算法(Prim算法
对于图G,假设集合V是所有顶点的集合,集合E存放最小生成树所有边。现在要实现最小生成树,将实现过程中用到的顶点放入集合U。从所有未使用的顶点v∈(V-U),和已用的顶点u∈U的边中选取权值最小的边(u,v)。将v放入U,(u,v)放入集合E。如此不断重复。当存储最小生成树经过的顶点集合U和原顶点集合V相等时,就构造完毕。如果prim算法是基于邻接矩阵实现的原创 2017-12-06 18:33:36 · 660 阅读 · 0 评论 -
利用Java语言实现八种排序算法(中
5.简单选择排序算法思想:假设待排序元素序列有n个,在第一趟排序过程中,从n个元素序列中选择最小的元素,并将其放在序列最前面位置。在第二趟排序中,从剩余n-1个元素中选择最小元素放在第二个位置。以此类推,直到没有待比较元素。public void SelectSort(int[] nums){ for(int i = 0;i<nums.length;i++){ int min =原创 2017-11-29 15:37:51 · 256 阅读 · 0 评论 -
利用Java语言实现八种排序算法(上
首先讨论插入排序算法的思想:每趟将一个元素,按照其关键字值的大小插入到它前面已排序的子序列中,依次重复,直到插入全部元素。1.直接插入排序算法: 1>第I趟,前面有I个元素是已经排序的。(1≤I<n)将ai插入到a0-ai-1这一序列的适当位置 2>重复执行n-1趟代码实现:public void StraightInsert(int[] n原创 2017-11-29 10:41:59 · 712 阅读 · 1 评论 -
字符串转整数
public class Solution { public int myAtoi(String str) { if (str.isEmpty()) return 0; int sign = 1, base = 0, i = 0, n = str.length(); while (i < n && str.charAt...原创 2019-06-25 21:39:21 · 143 阅读 · 0 评论