- 博客(20)
- 问答 (1)
- 收藏
- 关注
原创 【基础算法补全】二分查找
算法思想:在一个无序的顺序存储结构中,要想寻找到某一个元素,我们通常需要对该结构中的元素逐个遍历。这非常耗费时间。但在有序数组中,我们有比逐个比对更为快捷的算法可供选择——如果我们能够利用数组有序的性质,选择性的遍历数组的部分,那么程序的执行便会有效率得多了。以升序序列为例。在一个升序数组中,一个数左边的数必定是小于该数的,而其右边的数必定是大于该数的。于是,在接下来的搜索中,我们可以每次都只对比数组的中间项与待查找值是否一致,并把该数组沿中间项“切开”分为两半,根据中间项与待查找值的对比结果来选择
2021-10-03 18:52:14
206
1
原创 【基础算法补全】快速幂
算法思想:-对于除了指数为零的情况外每种base ^ n,都有且仅有 base ^ n = base ^ (n / 2) * base ^ (n / 2) 或 base ^ n =base ^ (n / 2) * base ^ (n / 2) * base ^ 1 两种情况,因此可以得出以下递归/非递归算法代码实现:C++代码实现:递归实现:int getrow(int base,int n){ // base 为底数,n 为指数 if(n == 0){ // 递归..
2021-10-03 00:43:19
205
原创 【基础算法补全】埃氏筛
算法思想: - 素数的倍数必不是素数代码实现:C++:bool *is_Prime; // 布尔型指针,用于申请一个连续的数组空间,判断数组下标对应数是否为素数void Initialize(int n){ // 初始化用于素数判断的布尔数组,n代表本程序中需要埃氏筛判断的最大素数 is_Prime = new(bool [n + 1]); // 为指针赋予数组空间 is_Prime[0] = false; is_Prime[1] = false;...
2021-10-02 21:55:54
265
原创 [LeetCode补题计划]剑指 Offer II 045. 二叉树最底层最左边的值(Golang代码)(暴力模拟破解)
题目描述:给定一个二叉树的根节点root,请找出该二叉树的最底层最左边节点的值。假设二叉树中至少有一个节点。样例1:输入: root = [2,1,3]输出: 1样例2:输入: [1,2,3,4,null,5,6,null,null,7]输出: 7来源:力扣(LeetCode)链接:力扣著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路:看了力扣题解区各路大佬八仙过海各显神通的巧妙解法,却只能知其然而不知其所以然的弱鸡愤懑的...
2021-09-24 01:48:37
172
原创 [LeetCode补题计划]1828. 统计一个圆中点的数目(Golang代码)
题目描述:给你一个数组points,其中points[i] = [xi, yi],表示第i个点在二维平面上的坐标。多个点可能会有 相同的坐标。同时给你一个数组queries,其中queries[j] = [xj, yj, rj],表示一个圆心在(xj, yj)且半径为rj的圆。对于每一个查询queries[j],计算在第 j个圆 内点的数目。如果一个点在圆的 边界上,我们同样认为它在圆内。请你返回一个数组answer,其中answer[j]是...
2021-09-21 16:47:59
196
原创 [LeetCode补题计划]92. 反转链表 II(Golang代码)
题目描述:给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路:本题是对指针及链表基础知识的考核熟悉链表的同学应该都能轻松AC
2021-09-21 16:39:03
125
原创 [LeetCode补题计划]剑指 Offer II 079. 所有子集
给定一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。本题可以套用模版,使用深度优先搜索得到答案func subsets(nums []int) [][]int { var ans [][]int var temp []int length := len(nums) var dfs func(k int) dfs = func(k int){ ...
2021-09-08 00:09:18
149
原创 【C】【插入排序】使用插入排序对少量数进行简单排序
本程序的作用为将输入的一串任意整数按从小到大的顺序进行排序;#include <stdio.h>#define MAX 50void input(int a[],int n);void conterSort(int a[],int n);void output(int a[],int n);int main(void){ int a[MAX],n; printf("请输入数据的个数:\n"); scanf("%d",&n); input
2021-02-28 18:09:27
492
原创 【C语言】【树】【双亲表示法】使用树的双亲表示法存储简易学生信息
如题 本程序利用树的双亲表示法存储简易的学生信息(学生的姓名和成绩)运行演示全部代码//树的双亲表示法,是利用顺序结构存储 树 ,并利用多个“树”组成 森林#include <stdio.h>#include <stdlib.h>#include <string.h>#define Max 50struct __student_Treenode__{ char name[20]; int score; int pare
2021-02-10 13:32:04
278
原创 【C语言】【树】【孩子表示法】使用孩子表示法存储简易学生信息
如题,本程序利用孩树的子表示法存储简易学生信息(姓名与成绩)初学者作品,欢迎大佬斧正// 孩子表示法的本质是每个节点设置一个孩子链表,利用顺序结构存储根的节点和孩子们的头指针//鉴于表示方便,本试验程序用二叉树代替树进行存储#include <stdio.h>#include <stdlib.h>#include <string.h>#define Max 50struct Cnode{ //组成孩子链表 int child; //孩子序号
2021-02-10 13:26:30
360
原创 【C语言】【二叉树】【初学者】二叉树存储结构的几种遍历方式
先序遍历:先访问根,再先后遍历左子树、右子树;void output_preorder(struct tree *bt){ //先序遍历 //先根后左孩再右孩 if(bt != NULL){ printf("%c",bt -> data); output_preorder(bt -> lchild); output_preorder(bt -> rchild); }}中序遍历:先遍历左子树,
2021-02-08 21:57:14
123
原创 【C语言】【链串】【初学者】使用链式存储存储字符串
本项目使用链式存储的方式存储字符串;初学者作品,欢迎各位大佬斧正;运行效果全部代码#include <stdio.h>#include <string.h>#include <stdlib.h>struct str{ char ch; struct str *next;};struct str *input(struct str *head,char x);void output(struct str *head);i
2021-02-06 20:24:06
1402
原创 【C语言】【串】【初学者】使用顺序存储结构存储串 并进行两个串的模式匹配
本项目使用顺序存储的方式存储两个字符串,并对这两个串进行模式匹配其中第一个输入的字符串为目标串,第二个输入的字符串为模式串输出为模式串(子串)在目标串(主串)中的位置;若第二次输入的串并非第一次输入的串的子串,则输出提示信息;运行效果全部代码#include <stdio.h>#include <stdlib.h>#define Max 50struct String{ char data[Max]; //用于存储字符串 int
2021-02-05 23:36:59
570
原创 【C语言】【链队列】【初学者】使用链队列实现简易学生信息管理
在结束了对顺序队列的探讨后,我又开始了对队列的链式存储的学习探讨不得不说这个项目让我对队列这一数据结构有了更深刻的认识本项目是基于C语言数据结构课程中《链队列的定义,判空,入队,出队》的一个个人总结由于博主尚是初学,代码颇为生疏,如有不妥之处还请大佬斧正以下是正文全部代码#include <stdio.h>#include <stdlib.h>#include <string.h>struct student{ //定义名为 stu
2021-02-04 23:35:56
945
1
原创 【C语言】【顺序队列】【初学者】使用顺序队列实现简易学生信息存储
引在结束对栈的实验探究及学习了顺序队列的相关知识之后,我又抱着试试看的心态,开始了对顺序队列的项目试验本项目是对C语言数据结构这门课程中的一个课题——《顺序队列的定义,判空,判满,入队,出队》的一个个人总结本程序的功能又双叒是有:1.添加学生信息(在队尾插入数据)2.读取学生信息3.删除最早录入的学生信息(读取并移除队头数据)4.退出程序初学者作品,欢迎各位大佬斧正——下面正式进入正题全部代码#include <stdio.h>#include &
2021-02-04 21:29:29
1074
1
原创 【C语言】【链栈】【初学者】使用链栈实现简易学生信息存储
与上一个项目相同,本项目是对C语言数据结构这门课程中的一个课题——《链栈的定义、出栈、入栈、判空》的一个个人总结;可以存储学生的姓名和成绩信息,与上篇博文的顺序栈存储程序不同,本程序无固定的存储上限;本程序的功能依然是有:1.添加学生信息(入栈)2.读取学生信息3.删除最新录入的学生信息(读取并移除栈顶数据)(出栈)4.退出程序同样的,本程序只做实验探讨用途,无任何实用价值初学者作品,有不当或过于繁琐的地方欢迎各位大佬斧正全部代码#include <stdio
2021-02-04 15:06:12
667
1
原创 【C语言】【顺序栈】【初学者】使用顺序栈实现简易学生信息存储
本项目是对C语言数据结构这门课程中的一个课题——《顺序栈的定义、出栈、入栈、判满、判空》的一个个人总结;可以用于存储学生的姓名和单科成绩,最多可录入50个学生的姓名与其成绩;本程序的功能有:1.添加学生信息(入栈)2.读取学生信息3.删除最新录入的学生信息(读取并移除栈顶数据)(出栈)4.退出程序本程序功能及其简单,仅为课程实验设计,无任何实用价值;小白作品,欢迎大佬斧正#include <stdio.h>#include <stdlib.h>
2021-02-03 23:34:10
1474
原创 【Golang】【初学者】【仿C链表】简易学生管理系统
目录引子简易学生管理系统代码一览运行引子本人是一个计算机专业的大一新生,适逢疫情,寒假期间无处可去,便想着不要虚度光阴,尽我所能的做些微不足道的小项目,作为一种娱乐,也可以使我更加熟悉go语言的语法和一些与C、C++和Python不同的特性。只是一个小小的练习,有很多不足的地方,希望各位大佬能够不吝赐教简易学生管理系统系统仅有简单的 添加、读取、查询、删除、修改 功能学生信息的格式为: 学号 姓名 性别 年龄 成绩本系统使用...
2021-01-28 22:03:19
235
1
原创 [2021_1_26][golang] 字符串逆序
package mainimport "fmt"const Max int = 50func main(){ var a [Max]byte //定义一个"字符数组" var i = 0 for i = 0; ; i ++{ fmt.Scanf("%c",&a[i]) if a[i] == '\n'{ break } } for ; i >= 0; i-- { fmt.Printf("%c",a[i]) }}...
2021-01-26 14:20:17
235
空空如也
【初学】Golang中类c链表制作学生管理系统中关于“打印学生信息”存在的小问题
2021-01-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人