数据结构与算法
数据结构与算法
I like study.
热爱技术
展开
-
数据结构复习:图的基本操作、应用(邻接表实现)
图的邻接表存储原创 2022-08-02 00:17:30 · 326 阅读 · 0 评论 -
数据结构复习:图的基本操作、应用(邻接矩阵实现)
邻接矩阵实现图的存储原创 2022-08-02 00:14:18 · 207 阅读 · 0 评论 -
数据结构复习:并查集基本操作实现
并查集原创 2022-07-30 08:23:54 · 145 阅读 · 0 评论 -
数据结构复习:二叉排序树的实现
二叉排序树原创 2022-07-29 12:38:41 · 351 阅读 · 0 评论 -
数据结构复习:线索二叉树的实现
线索二叉树原创 2022-07-29 12:37:30 · 347 阅读 · 0 评论 -
数据结构复习:树的链式存储实现(孩子兄弟表示法)
树的链式存储原创 2022-07-29 12:33:12 · 1136 阅读 · 0 评论 -
数据结构复习:树的孩子表示法存储(顺序+链式)实现
树的顺序+链式存储原创 2022-07-29 12:31:34 · 1282 阅读 · 0 评论 -
数据结构复习:树的顺序存储实现(双亲表示法)
树的顺序存储原创 2022-07-29 12:28:42 · 445 阅读 · 0 评论 -
数据结构复习:二叉树的链式存储实现
二叉树的链式存储原创 2022-07-29 12:27:01 · 252 阅读 · 0 评论 -
数据结构复习:完全二叉树的顺序存储实现
完全二叉树原创 2022-07-29 12:25:44 · 685 阅读 · 0 评论 -
数据结构复习:串的基本操作实现、KMP算法
串原创 2022-07-29 12:19:15 · 150 阅读 · 0 评论 -
数据结构复习:共享栈的实现
共享栈原创 2022-07-29 12:15:48 · 172 阅读 · 0 评论 -
数据结构复习:链队列的实现
链队列原创 2022-07-29 12:14:37 · 74 阅读 · 0 评论 -
数据结构复习:(双端)队列的实现
双端队列原创 2022-07-28 10:39:08 · 137 阅读 · 0 评论 -
数据结构复习:链栈实现
链栈原创 2022-07-28 10:36:05 · 72 阅读 · 0 评论 -
数据结构复习:顺序栈实现
顺序栈原创 2022-07-28 10:35:01 · 120 阅读 · 0 评论 -
数据结构复习:静态链表实现
静态链表原创 2022-07-28 10:32:37 · 91 阅读 · 0 评论 -
数据结构复习:双向循环链表实现
双向循环链表原创 2022-07-28 10:31:28 · 159 阅读 · 0 评论 -
数据结构复习:单向循环链表的实现
单向循环链表原创 2022-07-28 10:29:46 · 175 阅读 · 0 评论 -
数据结构复习:双链表的实现
双链表原创 2022-07-28 10:27:52 · 106 阅读 · 0 评论 -
数据结构复习:单链表的实现
单链表原创 2022-07-28 10:26:28 · 197 阅读 · 0 评论 -
数据结构复习:(动态)顺序表的实现
动态顺序表原创 2022-07-28 10:24:48 · 175 阅读 · 0 评论 -
数据结构复习:(定长)顺序表的实现
顺序表的实现原创 2022-07-28 10:21:26 · 99 阅读 · 0 评论 -
算法题:字符串反转
(1)直接按编号逆向遍历 String str="aabgdshbdfsh"; //String str2=""; StringBuilder stringBuilder=new StringBuilder(); //StringBuffer stringBuffer=new StringBuffer(); for (int i = 0; i < str.le...原创 2020-04-22 09:50:48 · 236 阅读 · 0 评论 -
栈的顺序/链式 存储实现(Java版)
栈的定义一种特殊的线性表—-操作受限的线性表,限于在表尾插入或删除元素的线性表栈的顺序存储实现package algorithm.datastructure.stack;/** 栈* 一种特殊的线性表—-操作受限的线性表,限于在表尾插入或删除元素的线性表* 顺序栈* 采用一段连续的空间存储(数组)** */public class SeqStack { private int []table;//数组 private int top;//栈顶元素 priva原创 2020-10-28 11:07:03 · 251 阅读 · 1 评论 -
哈希表操作
#include <stdio.h>#include <stdlib.h>#include <conio.h>#define HASHTABLE_LINE 1000typedef int ElemType;typedef struct hashNode{ ElemType site; ElemType key; struct...原创 2018-11-25 13:22:17 · 214 阅读 · 0 评论 -
队列的顺序/链式 存储实现(Java版)
队列的定义队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作, 而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。 进行插入操作的端称为入队,进行删除的操作成为出队。队列的顺序存储实现package algorithm.datastructure.queue;/** 队列* 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,* 而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表原创 2020-10-28 11:11:13 · 449 阅读 · 1 评论 -
线性表的链式存储实现(Java版)
链表:一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。package algorithm.datastructure.linklist;import java.util.NoSuchElementException;/** 链表* 物理存储上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现* * */public class LinkedList { private Node head;//头节点 priva原创 2020-10-27 11:04:28 · 415 阅读 · 2 评论 -
栈的应用之括号匹配(c语言)
#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;stdlib.h&amp;amp;gt;#define MAXSIZE 100//***栈的应用之括号匹配***/typedef struct{ char data[MAXSIZE]; int top;}*sqStack,sepStack;sqStack init原创 2018-10-07 16:38:40 · 9496 阅读 · 3 评论 -
稀疏数组的实现
package sparsearray;/*** 现在有一稀疏数组arr0 0 0 0 0 0 0 0 0 0 00 0 1 0 0 0 0 0 0 0 00 0 0 2 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0原创 2021-04-03 15:32:29 · 95 阅读 · 0 评论 -
二分查找
#include <stdio.h>#include <stdlib.h>#define MAX_NUM 100typedef struct{ int key;}ElemKey;typedef struct sequence{ int elem[MAX_NUM]; int length;}sqList;sqList* init_sqLi...原创 2018-11-25 13:27:24 · 141 阅读 · 0 评论 -
线性表的顺序存储实现(Java版)
顺序表:用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表package algorithm.datastructure.seqlist;/*顺序表** 用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表**/public class SeqList { private int length;//顺序表长度 private int[] list;//数组,连续原创 2020-10-27 10:14:56 · 374 阅读 · 0 评论 -
双向循环链表实现(Java版)
双向循环链表定义相比于单链表,有两个指针,next指针指向下一个结点,prior指针指向上一个结点,最后一个结点的next指针指向头结点,头结点的prior指针指向最后一个结点代码实现:我们对单链表的实现加以修改package algorithm.datastructure.doublelinkedlist;import java.util.NoSuchElementException;/** 双向循环链表* 两个指针,next指针指向下一个结点,prior指针指向上一个结点,最后一个结点原创 2020-10-27 18:05:33 · 918 阅读 · 0 评论 -
常用的排序算法(Java版)
package algorithm.datastructure.sort;import java.util.HashSet;import java.util.Random;import java.util.Set;public class SeqList { private int[] table;//数组 private Set<Integer> set = new HashSet<>();//集合,用来判断重复元素 private static原创 2020-11-01 17:17:52 · 172 阅读 · 0 评论 -
算法题:判断字符串是否是合法的ipv4地址
问题描述判断字符串是否是合法的ipv4地址ipv4地址特点比如 123.1.33.2有四位,每一位之间直接用.分割,每一位的范围是0-255,即在0.0.0.0到255.255.255.255之间(方法1)将当前字符串分割为字符数组(注意分隔符.需要转义写成\\.),然后判断每一位的范围是否在0-255之间,如果在0-255之间,判断是否当前字符是否以0结尾同时不是第一位(比如01.1...原创 2020-04-23 08:30:45 · 4927 阅读 · 0 评论 -
算法题:给定一个字符串,反转每个单词中字符的顺序,同时保留单词和空格的初始位置
问题描述给定一个字符串,反转每个单词中字符的顺序,同时保留单词和空格的初始位置算法描述先用字符串的split方法把字符串转换为一个字符串数组,依次遍历当前字符串,然后反转当前字符串和空格添加到一个新的字符串,最后截取最后一个空格(多添加了一个)代码public void test1() { String str="I'm a student"; StringBuilder str...原创 2020-04-23 08:19:15 · 2118 阅读 · 0 评论 -
算法题: 写函数将句子按一定分隔符分割后逆序返回
问题描述写函数将句子按一定分隔符分割后逆序返回算法描述逆序遍历字符串,依次添加当前字符、分隔符到新的字符串,这样其实最后多加了最后一个分隔符,所以最后再去掉最后一个分隔符代码 @Test public void test1() { System.out.println(inverseSentence("I am a student", " ")); } String i...原创 2020-04-23 08:14:08 · 429 阅读 · 0 评论 -
算法题:统计手机号中各个数字出现的次数,并按升序输出
这样题我们同样可以使用HashSet来统计出每个数字出现次数,但是要求升序输出,我们还需要将key进行排序,这里有一种简便方法,数字只有0-9,我们可以定义一个int型,长度为10的数组count,遍历手机号码,对数组的count[当前手机号码数组]++ public void test1() { String str = "14378294098"; int[]count=new in...原创 2020-04-07 09:20:56 · 2375 阅读 · 0 评论 -
算法题:统计第一次出现的字符
(1)方法1使用HashSetpublic void test1() { Map<Character, Integer> map=new HashMap<Character, Integer>(); String str ="asgasdgdshhffmddjjnan"; Character c =null; for (int i = 0; i <...原创 2020-04-07 09:15:13 · 138 阅读 · 0 评论 -
算法题:找出第一次重复出现的字符
(1)方法1使用HashSetpublic void test1() { String str ="abccba"; Character repeatCharacter=null; Set<Character> set=new HashSet<Character>(); for (int i = 0; i < str.length(); i++) ...原创 2020-04-07 09:12:53 · 677 阅读 · 0 评论