自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(201)
  • 资源 (10)
  • 收藏
  • 关注

原创 Sockets 编程 —— 基于Python的简单聊天应用,包括一个聊天服务器和一个聊天客户端。服务器允许多个客户端连接,并将来自一个客户端的消息广播给其他所有客户端。

这是一个基于Python的简单聊天应用,包括一个聊天服务器和一个聊天客户端。服务器允许多个客户端连接,并将来自一个客户端的消息广播给其他所有客户端。这个示例使用了线程来处理并发连接。

2023-05-09 13:56:13 733

原创 makefile 编写

makefile 编写原文链接小导航makefile 编写示例入门版使用变量改良版make 自动推导Makefile 里有什么编译和链接源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。在编译时,编译器只检测程序语法和函数、变量是否被声明。如果函数未被声明,编译器会给出一个警告,但可以生成 Object File。而在链接程序时,链接器会在所有的 Object File 中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在 VC 下,这种错误一般是:Link

2022-04-16 13:46:15 489

转载 Machine Learning --- 机器学习(斯坦福大学)相关材料中英翻译

Machine Learning — 机器学习(斯坦福大学)不断学习,不断更新中……1. Linear regression with one variable2. Multiple Features3. Logistic Regression4. …

2022-03-26 18:10:45 398

原创 Git 基操

Git 基操

2022-03-08 13:03:52 191 1

原创 二分排序法

二分排序法运行结果:思想:1, 逐渐扩大排好序区间,用待排元素插入到排好序的序列中2,查找待插入位置时用二分查找法#include<iostream>// 折半插入排序void binarySort(int a[], int n) { int i, j, low, mid, high; for (i = 2; i < n; ++i) { a[0] = a[i]; // 待排元素,a[0]用来存储每次待排的元素,不参与整体排序 low = 1; hi

2021-12-20 01:36:58 393

原创 用前序和中序遍历序列构造二叉树

用前序和中序遍历序列构造二叉树生成如下图这样一棵树,简单容易想遍历序列它的先序:1 2 4 3它的中序:4 2 1 3它的后序:4 2 3 1构造思想:先序第一个元素即为根结点的值 1,在中序中找到 1,由 1 将中序序列分成两个子序列,左边子序列构成左子树,右边子序列构成右子树,再对左、右两个子序列用同样的方法处理,知道所处理的子序列只剩下一个元素时二叉树构造结束。运行结果:源码#include<iostream>// 二叉链表存储树typedef

2021-12-09 01:35:46 665

原创 操作系统 | OS 经典同步问题之生产者-消费者问题,哲学家进餐问题

小目录1. 生产者-消费者问题2. 哲学家进餐问题1. 生产者-消费者问题生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满

2021-11-18 01:31:26 1222

原创 Python 从基础到入门

Python 从基础到入门目录一、hello,world一、hello,world控制台命令行,一句一句地输入Python执行语句>>> print("hello,world")hello,world结束控制台命令运行Ctrl + Z # 强制结束exit() # 退出Python控制台# 单行注释''' 三引号(英文)多行注释 ''' 查看 Python 关键字>>> import keyword>>>

2021-11-11 12:19:10 817 2

原创 图(邻接矩阵、表)的创建(怎么生成)过程,然后学会遍历,掌握这两个基本操作,才能更好地深究图后面的算法那.

知道图的创建过程、然后学会遍历,掌握这两个基本操作,才能更好地深究有关图后面的算法那首先要明白他们的基本思想创建图(如果是邻接矩阵表示,比较容易,直接定义一个二维数组就行了)创建邻接表(图)的基本思想:确定顶点数和边数初始化每个顶点的位置(也就是每个顶点在邻接表中的位置)连接有边的顶点(无向图双向连接,有向图只连单边),并赋予权值深度优先搜索的基本思想:任取一个顶点,访问之,然后检查这个顶点的所有邻接顶点,递归访问其中未被访问过的顶点广度优先搜索的基本思想:任取图中一

2021-11-04 19:26:57 423

原创 【宝藏】二叉树的非递归遍历 | 先序 | 中序 | 后序 | 层次

二叉树的非递归遍历运行结果(采用二叉排序法构建二叉树):代码如下:#include<iostream>// 定义二叉树结点类型,以二叉链表作为存储二叉树的数据结构typedef struct BTNode { int data; struct BTNode* lchild; struct BTNode* rchild; // 默认构造 BTNode() :data(0), lchild(0), rchild(0) {} // 带参构造函数 BTNode(int

2021-09-24 01:02:33 155

原创 【考题】合并两个有序表为一个有序表

合并两个有序表为一个有序表合并后为一个有序表思路都在代码注释里了。#include<iostream>// merge 归并,将两个有序表 a[], b[] 合并为一个有序表int* temp = new int[20](); // 动态开辟一个大小为 20 的空间并初始化这 20 个单元值为 0int* merge(int a[], int b[], int m, int n) { size_t i = 0, j = 0, k = 0; // 下面会用到的数组变量

2021-09-20 20:34:18 861

原创 【宝藏归并排序算法代码】归并排序算法 | 详细实现

归并排序算法想写的都放在代码注释里了#include<iostream>int* p = new int[20](); // 动态开辟一个大小为 20 的空间并初始化这 20 个单元值为 0 // A[] 表示 [low...mid] and [mid + 1...high] 都是有序的void merge(int A[], int low, int mid, int high) { // 将两片各自有序的表合并为一个有序表 size_t i = 0, j = 0, k

2021-09-20 20:19:17 95

原创 二叉树 | 前、中、后序递归遍历及层次遍历

二叉树的前、中、后序递归遍历及层次遍历运行结果二叉树采用二叉排序树生成法,所以中序输出递增序列想描述的都在代码里了,这些都比较简单,直接看代码里的注释吧。#include<iostream>// 定义二叉树结点类型,以二叉链表作为存储二叉树的数据结构typedef struct BTNode { int data; struct BTNode* lchild; struct BTNode* rchild; // 默认构造 BTNode() :data(0),

2021-09-19 23:19:38 191

原创 【宝藏】一篇博客代码 + 注释让你搞懂线索二叉树

线索二叉树一. 线索二叉树的创建、遍历二. 前、后序递归线索化二叉树(补充)一. 线索二叉树的创建、遍历运行结果代码如下,注释为王#include<iostream>// 线索二叉树结点定义typedef struct TBTNode { int data; // 值域 int ltag, rtag; // 左右线索标记 struct TBTNode* lchild; // 左指针 struct TBTNode* rchild; // 右指针 // 默认构

2021-09-19 21:54:01 97

原创 二叉排序(搜索)树 | BST | 插入 | 创建 | 查找 | 遍历

二叉排序(搜索)树 | BST | 插入 | 创建 | 查找 | 遍历运行结果注释为王,请看代码:#include<iostream>// 定义二叉树结点类型,以二叉链表作为存储二叉树的数据结构typedef struct BTNode { int data; struct BTNode* lchild; struct BTNode* rchild; // 默认构造 BTNode() :data(0), lchild(0), rchild(0) {} // 带参

2021-09-19 16:47:00 132

原创 C++ | 快速排序

C++ 快速排序通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码详情#include<iostream>// 对数组从下标 low 到 high 进行排序void Qsort(int a[], int low, int high) { if (low >= high) return; int temp = 0;

2021-09-18 20:27:16 83

原创 kmp 算法的一种代码实现

kmp 算法的一种代码实现本文档仅提供代码实现(刚好 100 行),有注释,但由于 kmp 算法理解的困难性,深入理解还需参考一些其他资料。#include<iostream>//简单匹配size_t index(std::string&, std::string&);// next[]void get_next(std::string&, int next[]);// 优化后 nextval[]void get_nextval(std::st

2021-09-05 16:55:55 163

原创 矩阵之转置、加、减、乘

矩阵之转置、加、减、乘结果:打印原始数组:[[1 2 3 ][4 5 6 ][7 8 9 ][3 4 5 ]]转置后:[[1 4 7 3 ][2 5 8 4 ][3 6 9 5 ]]d:[[1 2 3 ][4 5 6 ]]e:[[1 2 3 ][4 5 6 ]]d e 相加:[[2 4 6 ][8 10 12 ]]d e 相减:[[0 0 0 ][0 0 0 ]]g:[[1 2 ][4 5 ]]h:[[1 2 3

2021-07-26 23:31:11 2059

原创 (灵魂面试题)C++ 设计不被继承的类

C++ 设计不被继承的类我们知道,使用关键字 final 可以实现禁用继承、禁用重载。现在将用一种更特别的方式设计一个不被继承的类 B关键:一个类能否被继承取决于构造函数实现。template <typename T> class A{ friend T;private: A() {} ~A() {}};class B : virtual public A<B>{public: B() {} ~B() {}};class C : virt

2021-07-22 17:22:03 81

原创 (面试考题)访问基类的私有虚函数,深入理解虚函数和多态

访问基类的私有虚函数运行结果:B::gA::fB::h望读到的大佬分析一下 main() 函数里的代码什么意思呀#include <iostream>using namespace std;class A{ virtual void g() { cout << "A::g" << endl; }private: virtual void f() { cout << "A::f" << endl; }

2021-07-22 16:51:39 802

原创 (面试常考数据结构灵活应用)用两个栈实现一个入队功能

用两个栈实现一个入队功能// 定义结点typedef struct node{ int data; node* next;}node, * LinkStack;// 创建空栈LinkStack CreateNULLStack(LinkStack& S){ // S = (LinkStack)malloc(sizeof(node)); // 申请新结点 S = new node(); if (NULL == S) { printf("Fail to malloc a n

2021-07-22 16:27:51 79

原创 浅谈 Pow(x, n) 问题

问题实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。思路:将 n 进行二进制拆分,为 1 的位多乘一个 x 。然后每次都将 x 平方,最后结果即 xn。class Solution {public: double quickMul(double x, long long N) { double ans = 1.0; // 贡献的初始值为 x double x_contribute = x; // .

2021-07-16 10:23:45 300

原创 Summary of study notes(github)学习记录分享

xdm,我把学到的东西都汇总到 github 上呢,并且会持续更新背后的链接呢 ❥(^_-)github 地址一起学习,一起进步,冲啊!!!

2021-06-30 20:57:03 77

原创 C++ 中浮点数精度丢失问题

必知概念浮点数由阶码和尾数两部分组成。E 为阶码,M 为尾数。浮点数默认保存为 double 类型,就像整数默认为 int 型一样。float 的十进制精度为 7 位。double 的十进制精度为 16 位。所以浮点数在计算机中存储时,可能出现 精度丢失 问题。所以编程时一般都用 double 而不用 float,以免造成难以发现的 bug。下面来看编译结果及代码(浮点数规格化就是对非规格化浮点数进行的处理,包括溢出处理)源码:#include<iostream.

2021-06-16 12:33:26 3914

原创 浅谈 山脉数组的峰顶索引 问题

山脉数组的峰顶索引问题:符合下列属性的数组 arr 称为 山脉数组 :arr.length >= 3存在 i(0 < i < arr.length - 1)使得:arr[0] < arr[1] < ... arr[i-1] < arr[i]arr[i] > arr[i+1] > ... > arr[arr.length - 1]给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < .

2021-06-15 23:25:01 133 1

原创 C++ 对文件的最常用基操之对 ASCII 文件(文本文件、字符文件)的操作

C++ 对文件的最常用操作☆ 基本概念根据文件中数据的组织方式,可以将文件分为 ASCII 文件 和 二进制文件。前者又称为文本文件或字符文件,后者又称为内部格式文件或字节文件。本文讲解针对 ASCII 文件的基操,具体内容详见代码。#include<fstream>#include<string>#include <iostream>/* ifstream 类,从 istream 类派生。用来支持从磁盘文件输入。 ofstream

2021-06-11 00:08:47 2199 2

原创 一个程序带你搞懂局部,结构体中的变量在内存中的存放逻辑

变量(局部,结构体中)的物理存放一键摸索首先了解概念变量按声明顺序在内存中顺序存放。不用对齐存放。而在结构体中声明的变量都是向 size 最大对齐存放。普通变量存放在栈中,为连续区域。然后看图源代码#include<iostream>#include<string>struct MyStruct{ int a; std::string b; char c; double d; MyStruct(int _a, char _c, do

2021-06-05 23:46:57 579

原创 浅谈 相交链表 问题

相交链表问题:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。思路:(双指针法)如果有链表为空则不会相交创建两个指针指向两链表的头节点。如果两节点不等则往下指。当一个链表遍历到最后一个节点时,将它指向另一个链表的头节点继续遍历。返回遍历的最后一个节点即为相交节点,如不相交则最后会遍历到表尾返回后一个空指针。/** * Definition for singly-linked list. *

2021-06-04 23:29:40 94 2

原创 浅谈 4 的幂 问题

4 的幂问题:给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x思路:思路 1如果所给整数小于等于 0 直接返回 0;如果所给整数大于 0,且是 4 的倍数(先确保它可能成为 4 的幂),然后不断将 n / 4, 最后 n 如果变为 1 则证明 n 是 4 的幂,返回 1。思路 24 的幂一定是 2 的幂,如果 (n & (n - 1))==

2021-05-31 10:39:10 694 1

原创 浅谈 2 的幂 问题

2 的幂题目:给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2^x ,则认为 n 是 2 的幂次方。思路:思路一如果所给整数小于等于 0 直接返回 0;如果所给整数大于 0,且是 2 的倍数(先确保它可能成为 2 的幂),然后不断将 n / 2, 最后 n 如果变为 1 则证明 n 是 2 的幂,返回 1。思路二(n & (n - 1))== 0 则证明 n 为 2 的

2021-05-31 00:41:37 221 1

原创 主要是为了 栈和队列的应用 熟悉这两种数据结构 才写了个小程序(C++ 小小米计算器)

小小米计算器我始终觉得,写程序,注释为王在追求代码质量的路上我希望越做越好,代码越简单,程序越稳定,bug 也就更不容易出现试运行 .exe 文件 → counter她的结构然后他运行后的主要界面,有两种模式模式 1模式 2接下来还得看源程序咯,就这 “破” 玩意儿,我调了好几晚,最后妥协做了个只能进行一位四则运算的迷你计算器。主函数/** * 作者 :hurricane&&storming** 日期 :2021.5.28**/#incl

2021-05-28 23:13:47 181

原创 大数据技术原理与应用(最后三天备考!!!)

大数据原理与应用期末备考 三天速成不挂科☆内容期末大概率考选择部分直达 → 选择部分导航大数据原理与应用期末备考 三天速成不挂科第一章 大数据概述第二章 大数据处理架构 Hadoop第三章 分布式文件系统 HDFS第四章 分布式数据库 HBase第一章 大数据概述☆1. 试述大数据的四个基本特征数据量大:人类进入信息社会后,数据以自然方式增长,数据每两年就会增加一倍多数据类型繁多:大数据的数据类型肥肠丰富,包括结构化数据和非结构化数据,如邮件、音频、视频等,给数据处理和分析技术提出了新

2021-05-14 23:52:40 5997 11

原创 大数据技术原理与应用(最后三天备考了!!!)

大数据原理与应用期末备考 三天速成不挂科导航大数据原理与应用期末备考 三天速成不挂科第一章 大数据概述第二章 大数据处理架构 Hadoop第三章 分布式文件系统 HDFS第四章 MapReduce选择题(正确答案已标出)第一章 大数据概述单选被誉为全球未来的三大高科技产业除了塑料电子学和仿生人体器官外,还有()A、物联网B、数学C、经典力学D、社会学云计算的基础层是()A、IaaS 层B、PaaS层C、SaaS层D、BaaS层云计算是对( )技术的发展与运用

2021-05-14 23:49:09 10179 3

原创 顺序表逆置问题,包括全逆置、区间逆置、最前(后)逆置和用逆置实现循环移位

线性表逆置逆置问题无非就是选取某些元素交换本文先考虑全逆置和区间逆置然后引出最前面和最后面逆置最后用前面的思路求解循环移动问题

2021-05-14 10:22:06 269

原创 浅谈 只出现一次的数字 II 问题

只出现一次的数字 II问题:给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。思路:直接法;统计数组中每个数字出现的次数返回仅出现一次的数字unordered_map 学习class Solution {public: int singleNumber(vector<int>& nums) const { unordered_map<int, int>

2021-04-30 09:52:16 128

原创 浅谈 平方数之和 问题

平方数之和问题:给定一个 非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a^2 + b^2 == c 。思路:依次遍历 c^(1/2) 前的数,看 c - i ^ 2 再开根后的数是否为整数是则存在,否则不存在class Solution {public: bool judgeSquareSum(int const& c) const { auto sc = sqrt(c); // 这里 sc 为 double 型 fo

2021-04-28 19:47:41 397

原创 C++ 实现电话薄(链表头插法实现添加联系人),简单地描写,主要是注重代码质量,看懂后可以很容易在上面添加其他功能并便于维护

C++ 实现电话薄(链表头插法实现添加联系人)主要实现了四个函数。

2021-04-28 19:26:39 758

原创 浅谈 二叉搜索树的范围和 问题

二叉搜索树的范围和问题:给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。思路:法一:深度优先搜索(dfs)如果没有根节点返回 0;遍历节点值,如果比 low 小则去掉左子树,比 high 大则去掉右子树;返回符合条件的所有节点值。法二:广度优先搜索(bfs)用 队列 来实现树的广度优先搜索使用广度优先搜索的方法,用一个队列 q 存储需要计算的节点。每次取出队首节点时,若节点为空则跳过该节点,否则按方法一中给出的大小关系来决

2021-04-27 22:21:52 186 1

原创 浅谈 递增顺序搜索树 问题

递增顺序搜索树给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。思路:例:将中序遍历结果放入临时数组。创建新树,将数组中的值放入新树的右子树。返回新树的右子树指针。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * T

2021-04-25 20:11:18 113

原创 浅谈 移动元素 问题

移动元素问题:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 ==原地 ==修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路:思路简单清晰遍历整个数组,将与 val 相等的值覆盖即可最后返回新数组长度class Solution {public: int removeElement(vector<int

2021-04-19 11:01:38 93

软件工程导论第六版(张海潘、牟永敏)著 (Answers to exercises after class)

课后习题答案

2021-06-09

小小米计算器counter.exe

主要是针对其中 栈 和 队列 的应用 源代码学习地址 https://blog.csdn.net/weixin_48033173/article/details/117375746

2021-05-28

Phonebook.exe

简单的电话薄实现,试跑 .exe 文件。纯 C++ 实现 源码学习 https://blog.csdn.net/weixin_48033173/article/details/116213945

2021-04-28

Java结业实验复习资料题目大全.pdf

此文档感恩回馈所有关注我的人,适合刚学完java基础想要快速巩固知识点的兄弟姐妹,全部题目纯手打并附有运行结果。题目难度循序渐进,知识点覆盖全面,想要考过期末考试或者等级考试的感觉下载学起来吧。一口气学完会有心间流过一股清泉的感觉哦。

2021-03-26

生论.pdf --- 看完你会静下心好好敲代码

迷茫的孩子们,努力奋斗才是你们每一分每一秒最好的选择

2021-01-28

calculator.exe

一个 java 开发的简单计算器,会计算加减乘除,还能带括号和小数运算。源码学习链接 https://blog.csdn.net/weixin_48033173/article/details/110521143

2020-12-24

简单迷宫(Maze)java编写

迷宫生成的 exe 可执行文件,源码纯 java 编写,有 gre 环境便可执行,学习源码可查看链接 https://blog.csdn.net/weixin_48033173/article/details/111353826

2020-12-18

Greedy-Snake_贪吃蛇

贪吃蛇小游戏,闲的无聊可以下来玩玩,哈哈。由于java编写,所以需要 jre 环境噢,电脑装了java的都有此环境。纯手打,java开发,学习开发全流程见 https://blog.csdn.net/weixin_48033173/article/details/110941866

2020-12-11

mysql-connector-java-8.0.22.jar

MySQL的 ODBC 驱动安装包,感觉每次进官网下载都好慢,所以就自己上传了,方便自己以后下载和供他人方便。

2020-11-28

哈佛学习力.docx

你想拥有哈佛学生的学习力吗,掌握里面的方法和技巧吧,理解里面的每一点,你的生活将从此发生巨变,你也会拥有更好的生活,学会更多更多的东西,没有什么是你难以抵达的,这将成为引领你一生的文库,如若你阅读之后,内容不多,但需要你至少用半生去学习,去体会,慢慢成长,你终将成为你想要成为的那个人,那个人也会变成你喜欢的样子。相信我!不要带着功利心去阅读,因为有些人越长大越不懂的遵循自己的内心,活在了别人设定的框框里,再也出不来了,祝大家好运。

2020-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除