
开源精选
记录自己的一些开源经历
JIeJaitt
a student
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
经典库httprouter源码阅读
官方:https://github.com/julienschmidt/httprouter文档:https://godoc.org/github.com/julienschmidt/httprouter简单描述,httprouter是一个golang实现的路由组件。httprouter使用一个前缀树来维护映射的父子关系,通过前缀树快速路由。同时其里面的HttpRouter结构体实现了golang的net.http.server的Handler接口,可以作为httpHandle发布。原创 2023-05-09 00:24:06 · 384 阅读 · 0 评论 -
谷歌开源库 wire 阅读
通过调研,了解到 Golang 中常用的依赖注入工具主要有 Inject 、Dig 等。但是今天主要介绍的是 Go 团队开发的 Wire,一个编译期实现依赖注入的工具。wire是 Google 开源的一个依赖注入工具。它是一个代码生成器,并不是一个框架。我们只需要在一个特殊的go文件中告诉wire类型之间的依赖关系,它会自动帮我们生成代码,帮助我们创建指定类型的对象,并组装它的依赖。wire是随着go-cloud的示例 guestbook一起发布的,可以阅读guestbook看看它是怎么使用wire的。原创 2023-05-13 21:58:41 · 660 阅读 · 1 评论 -
团队项目管理 Git 与 GitHub 使用经验
团队项目管理 Git 与 GitHub 使用经验原创 2021-09-16 23:17:23 · 301 阅读 · 0 评论 -
自用适用于程序员 ChatGPT 提问模版
自用的ChatGPT提问模版原创 2021-09-09 11:34:41 · 197 阅读 · 0 评论 -
单点登录鉴权平台 authset 源码阅读
接着,main函数会调用data目录中的base.go文件中的InitDB和InitRedis函数,初始化数据库和缓存连接池,并赋值给data目录中的data.go文件中的全局数据层实例变量Data。然后,main函数会调用services目录中的services.go文件中的NewService函数,创建一个服务层实例,并赋值给server目录中的server.go文件中的全局服务实例变量Server。接着,main函数会调用HTTP服务实例的Start方法,启动HTTP服务,并监听端口和处理请求。原创 2021-09-08 23:31:59 · 148 阅读 · 0 评论 -
轻量级高性能的 Gin 框架的 render 包
Gin框架的render包册单测文件有以下测试文件,你觉得还需要写什么测试文件。原创 2021-09-11 23:14:42 · 169 阅读 · 0 评论 -
const关键字及其作用(用法),C语言const详解
1、const的普通用法const int n = 10;意思很明显,n是一个只读变量,程序不可以直接修改其值。这里还有一个问题需要注意,即如下使用:int a[n];在ANSI C中,这种写法是错误的,因为数组的大小应该是个常量,而n只是一个变量。2、const用于指针const int *p;int const *p;int * const p;在最后的一种情况下,指针是只读的(即p只读),而在另外两种情况下,指针所指向的对象是只读的(即*p只读)。const 是一个左结合的类型修饰符原创 2021-10-11 11:35:03 · 2042 阅读 · 2 评论 -
子模块在嵌套Git项目中的运用
本文由转码, 原文地址有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目。也许是第三方库,或者你独立开发的,用于多个父项目的库。现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。我们举一个例子。假设你正在开发一个网站然后创建了 Atom 订阅。你决定使用一个库,而不是写自己的 Atom 生成代码。原创 2021-09-16 23:15:21 · 384 阅读 · 0 评论 -
『JIeJaitt’s PAT (Basic Level) Practice (中文)』- 1002 写出这个数 (20 分)
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789结尾无空行输出样例:yi san wu...原创 2021-09-16 23:13:37 · 85 阅读 · 0 评论 -
『JIeJaitt’s PAT (Basic Level) Practice (中文)』- 1001 害死人不偿命的(3n+1)猜想 (15 分)
卡拉兹(Callatz)猜想:对任何一个正整数 nnn,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)(3n+1)(3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1n=1n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1)(3n+1)(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡原创 2021-09-16 23:12:32 · 151 阅读 · 0 评论 -
由浅入深讲二叉树4种遍历算法的由来
遍历二叉树可以算作是对树存储结构做的最多的操作,既是重点,也是难点。本节将从初学者的角度给大家分析一下 4 种遍历二叉树算法的由来。遍历二叉树的算法图 1 二叉树示意图图 1 是一棵二叉树,对于初学者而言,遍历这棵二叉树无非有以下两种方式。层次遍历前面讲过,树是有层次的,拿图 1 来说,该二叉树的层次为 3。通过对树中各层的节点从左到右依次遍历,即可实现对正棵二叉树的遍历,此种方式称为层次遍历。比如,对图 1 中二叉树进行层次遍历,遍历过程如图 2 所示:...原创 2021-09-14 20:12:16 · 504 阅读 · 0 评论 -
1006 Sign In and Sign Out (25 分)
At the beginning of every day, the first person who signs in the computer room will unlock the door, and the last one who signs out will lock the door. Given the records of signing in’s and out’s, you are supposed to find the ones who have unlocked and loc原创 2021-09-12 11:52:08 · 103 阅读 · 0 评论 -
1005 Spell It Right (20 分)
Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English.Input Specification:Each input file contains one test case. Each case occupies one line which contains an N(≤10100)N (≤10原创 2021-09-12 11:51:21 · 79 阅读 · 0 评论 -
1004 Counting Leaves (30 分)
A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.Input Specification:Each input file contains one test case. Each case starts with a line containing 0<N<1000<N<1000<N&l原创 2021-09-12 11:48:40 · 100 阅读 · 0 评论 -
1003 Emergency (25 分)
As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are marked原创 2021-09-12 11:45:38 · 110 阅读 · 0 评论 -
1002 A+B for Polynomials (25 分)
This time, you are supposed to find A+BA+BA+B where AAA and BBB are two polynomials.Input Specification:Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:$$原创 2021-09-12 11:44:50 · 103 阅读 · 0 评论 -
1001 A+B Format (20 分)
Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).Input Specification:Each input file contains one test case. Each case contains a pair of i原创 2021-09-12 11:42:24 · 98 阅读 · 0 评论 -
回溯算法解决八皇后问题(包含C语言实现代码)
八皇后问题是以国际象棋为背景的问题:有八个皇后(可以当成八个棋子),如何在 8*8 的棋盘中放置八个皇后,使得任意两个皇后都不在同一条横线、纵线或者斜线上。原创 2021-09-12 11:28:29 · 440 阅读 · 0 评论 -
数据结构实践项目之俄罗斯轮盘赌小游戏
俄罗斯轮盘赌,想必很多人都听说过,一种残忍的赌博游戏。游戏的道具是一把左轮手枪,其规则也很简单:在左轮手枪中的 6 个弹槽中随意放入一颗或者多颗子弹,在任意旋转转轮之后,关上转轮。游戏的参加者轮流把手枪对着自己,扣动扳机:中枪或是怯场,即为输的一方;坚持到最后的即为胜者。本节实践项目同轮盘赌类似,游戏规则:n 个参加者排成一个环,每次由主持向左轮手枪中装一颗子弹,并随机转动关上转轮,游戏从第一个人开始,轮流拿枪;中枪者退出赌桌,退出者的下一个人作为第一人开始下一轮游戏。直至最后剩余一个人,即为胜者。要求:原创 2021-09-12 11:24:14 · 2053 阅读 · 0 评论 -
C语言学生信息管理系统演示和说明(文件版)
学生管理系统可以用来管理班级学生,能够对学生信息(包括姓名、性别、年龄、成绩等)进行增加、删除、更改、查询等操作。该软件将学生信息保存在文件中,直接对文件中的数据进行增删改查操作,除了能够培养您的编程思维,还能让你深入了解文件操作。一. 整体设计思路要想持久化地保存数据,必须要将数据写入磁盘中;本程序也不例外,我们会将学生信息最终都保存到文件中。当增加、删除、修改学生信息时,我们也应该对文件做出同样的操作。这就是本节的重点:如何检索文件;如何在文件中插入数据;如何删除文件中的部分数据;如何修原创 2021-09-12 00:11:03 · 448 阅读 · 0 评论 -
二叉树的链式存储结构(C语言详解)
上一节讲了二叉树的顺序存储,通过学习你会发现,其实二叉树并不适合用数组存储,因为并不是每个二叉树都是完全二叉树,普通二叉树使用顺序表存储或多或多会存在空间浪费的现象。本节我们学习二叉树的链式存储结构。...原创 2021-09-11 23:27:27 · 1269 阅读 · 2 评论 -
二叉树的顺序存储结构(看了无师自通)
二叉树的存储结构有两种,分别为顺序存储和链式存储。本节先介绍二叉树的顺序存储结构。二叉树的顺序存储,指的是使用顺序表(数组)存储二叉树。需要注意的是,顺序存储只适用于完全二叉树。换句话说,只有完全二叉树才可以使用顺序表存储。因此,如果我们想顺序存储普通二叉树,需要提前将普通二叉树转化为完全二叉树。有读者会说,满二叉树也可以使用顺序存储。要知道,满二叉树也是完全二叉树,因为它满足完全二叉树的所有特征。普通二叉树转完全二叉树的方法很简单,只需给二叉树额外添加一些节点,将其"拼凑"成完全二叉树即可。如图 1原创 2021-09-11 23:26:36 · 1297 阅读 · 0 评论 -
什么是二叉树(包含满二叉树和完全二叉树)
通过《树的存储结构》一节的学习,我们了解了一些树存储结构的基本知识。本节将给大家介绍一类具体的树结构——二叉树。简单地理解,满足以下两个条件的树就是二叉树:本身是有序树;树中包含的各个节点的度不能超过 2,即只能是 0、1 或者 2;例如,图 1a) 就是一棵二叉树,而图 1b) 则不是。...原创 2021-09-11 23:26:01 · 151 阅读 · 0 评论 -
数据结构的树存储结构
之前介绍的所有的数据结构都是线性存储结构。本章所介绍的树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。 (A) (B) 图 1 树的示例图 1(A) 是使用树结构存储的集合 {A,B,C,D,E,F,G,H,I,J,K,L,M} 的示意图。对于数据 A 来说,和数据 B、C、D 有关系;对于数据 B 来说,和 E、F 有关系。这就是原创 2021-09-11 23:25:07 · 160 阅读 · 0 评论 -
数据结构树,树存储结构详解
数据结构的树存储结构,常用于存储逻辑关系为 “一对多” 的数据。树存储结构中,最常用的还是二叉树,本章就二叉树的存储结构、二叉树的前序、中序、后序以及层次遍历、线索二叉树、哈夫曼树等,详细介绍二叉树。树是数据结构中的重点,同时更是难点,没有捷径,需要初学者静下心,死扣各个知识点。...原创 2021-09-11 23:23:50 · 208 阅读 · 0 评论 -
折半插入排序算法(C语言代码实现)
上一节介绍了直接插入排序算法的理论实现和具体的代码实现,如果你善于思考就会发现该算法在查找插入位置时,采用的是顺序查找的方式,而在查找表中数据本身有序的前提下,可以使用折半查找来代替顺序查找,这种排序的算法就是折半插入排序算法。该算法的具体代码实现为:...原创 2021-09-11 23:20:55 · 342 阅读 · 0 评论 -
插入排序算法及C语言实现
插入排序算法是所有排序方法中最简单的一种算法,其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据。直接插入排序是插入排序算法中的一种,采用的方法是:在添加新的记录时,使用顺序查找的方式找到其要插入的位置,然后将新记录插入。...原创 2021-09-11 23:19:31 · 82 阅读 · 0 评论