数据结构与算法
INC随我
这个作者很懒,什么都没留下…
展开
-
汉诺塔问题总结
一、基本递归实现下面是普遍的汉诺塔问题的递归解法代码public class Hanoi{ public static void hanoi(int n, String x, String y, String z){ if (n == 1){ System.out.println(x + " -> " + z); }else { hanoi(n - 1, x, z, y); System原创 2020-05-24 22:38:57 · 1367 阅读 · 0 评论 -
重温Java网络编程(实现简易TCP,UDP应用)
关于TCP以及UDP的相关知识,在此就不做相关总结,如有需要可以参考https://blog.csdn.net/li_ning_/article/details/52117463一、使用TCP实现一个简易登录功能1.创建一个实体类 User.javapackage com.tcp.multithreadingTcp;import java.io.Serializable;pu...原创 2019-06-13 11:29:09 · 555 阅读 · 0 评论 -
常见排序算法
今天实在不想刷笔试题就把常见的排序手敲了一遍1.选择排序class ChoiceSort<T extends Comparable>{ public static void main(String[] args) { ChoiceSort<Integer> choiceSort = new ChoiceSort<>(); ...原创 2019-06-13 11:26:33 · 134 阅读 · 0 评论 -
算法与数据结构设计周作业——大整数运算器
这次的算法与数据结构设计周作业题目比较简单,一个是求众数与重数,另一个题目则为大整数运算器,由于图形化界面不是硬性要求,所以项目不使用GUI,而是直接在命令行运行,具体题目如下:众数问题给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数,S中重数最大的元素称为众数。例如,S={1, 2 ,2 ,2 ,3 ,5},S的众数是2,该众数的重数为3。要求对于给定的由...原创 2018-11-13 22:36:50 · 1809 阅读 · 0 评论 -
LeetCode:29. 两数相除(Java)
29. 两数相除(Java)参考文章:https://blog.csdn.net/qq_31442743/article/details/81181554给定两个整数,被除数 dividend和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend除以除数 divisor得到的商。示例 1:输入: dividend = 10, divisor...原创 2018-10-23 20:34:05 · 2239 阅读 · 2 评论 -
LeetCode:10 正则表达式匹配(Java)
LeetCode:10 正则表达式匹配给定一个字符串 (s) 和一个字符模式 §。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个字符串 (s) ,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入...原创 2018-10-05 16:27:28 · 2893 阅读 · 0 评论 -
KMP算法
KMP算法适用于字符串匹配,今天通过相关视频,大致了理解了其实现原理以及步骤,学习的视频链接如下: https://www.bilibili.com/video/av6239731/?p=11 https://www.bilibili.com/video/av3246487?from=search&seid=8682896714663607035 https://study.163....原创 2018-04-28 16:40:37 · 182 阅读 · 0 评论 -
快速排序
其实这节课并没有听太懂,但是为了防止忘记,所以直接将郝斌老师的代码扔到了博客上希望我之后多次看之后能真正理解这个排序方法,还有就是郝斌老师的数据结构课程看完了,并没有图的相关,看来我要开始自学图了,加油!!!!# include <stdio.h>int FindPos(int * a, int low, int high);void QuickSort(int * a,...原创 2018-04-25 16:41:52 · 129 阅读 · 0 评论 -
栈的常见操作
今天正好下午没课,就接着昨天所看的课程一口气把郝斌老师有关栈的视频也刷完了,通过他用代码实现栈的常见操作使我对栈也有了一个进一步的认识,下面是我看过视频后参考郝斌老师的代码对栈常见功能的代码实现。#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data; struct Nod...原创 2018-04-20 20:42:21 · 1134 阅读 · 0 评论 -
二叉树以及链式二叉树的常见操作
二叉树是树这部分中最重要的知识之一,今天看完了郝斌老师关于树部分的知识,并对老师在看上所说的链式二叉树代码进行了实现一、二叉树的中的一些专有名词的解释:1.先序遍历:指先访问根节点,再先序遍历左子树,再先序遍历右子树2.中序遍历:指先中序遍历左子树,再访问根节点,再中序遍历右子树3.后序遍历:指先后序遍历左子树,再后序遍历右子树,再访问根节点下面...原创 2018-04-24 19:27:44 · 1563 阅读 · 0 评论 -
链表的常见操作
这两天一直在看郝斌的数据结构课程,之前上课大多是是理论,但是实际用代码实现还是比较困难,跟着郝斌老师重新温习了一遍链表的课程,受益匪浅,虽然郝斌老师实现所用代码和教材上的代码稍有区别,但是大致思想相同,而且有的部分感觉郝斌老师的方法更加优秀,所以对他上课时代码进行了重现,完成了链表的常见操作,具体代码如下:#include <stdio.h>#include <stdl...原创 2018-04-19 21:15:27 · 212 阅读 · 1 评论 -
汉诺塔递归问题
汉诺塔递归是一个用到了递归思想的经典问题,看过相关借时候其实我仍然还是没有完全理解,但是先把代码扔在博客上,慢慢消化这个问题# include <stdio.h>void hannuota(int n, char A, char B, char C)//指将A上的盘子借助B移到C{ /* 如果是1个盘子 直接将A柱子上的盘子从A移到C ...原创 2018-04-23 20:09:04 · 212 阅读 · 0 评论 -
循环队列的常见操作
与栈相比,队列我个人感觉简单一些,不过对于一般的队列,都是循环队列,这是为了防止内存的浪费,使为队列分配的内存可以循环使用,而且一般动态分配一个长度为n的循环队列的话,真正用来储存数据的只有n-1,因为要留一个空节点使队列尾的下标等于该空节点的下标,通过该空节点用来区分队满与队空,队满是判断条件是(rear+1)% len = front其中rear为队尾数据的下标,front为队头的下标,len...原创 2018-04-22 19:25:15 · 322 阅读 · 0 评论