自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 c语言实现通讯录管理系统

目录一、前言二、通讯录的实现1.关于通讯录的前期准备(1)菜单的实现(2)关于联系人结构体的创建(3)实现菜单选项的功能(4)关于全局变量的定义2、通讯录的功能实现(1)初始化通讯录(2)增加联系人(3)打印通讯录(4)查找联系人(5)修改联系人三、关于通讯录的优化1、通讯录结构体的改进2、初始化结构体3.增容4.释放内存四、总结一、前言本文将会用c语言实现一个通讯录的系统,并且存储若干人的信息,每个人的信息包...

2022-04-04 20:53:47 57088 74

原创 对于Java散列表的探究

对于HashMap的部分源码解读

2022-07-25 12:16:16 1143 15

原创 Java解析剑指offer链表篇(3)

剑指Offer链表题目个人思路和代码分享

2022-07-10 12:33:11 731 6

原创 Java实现双向链表

一、双向链表的简单理解1、双向链表是什么?在前面的文章中,我们仔细讲解了单向链表,并且用代码实现了单向链表。单向链表的好处很多,虽然单链表能 100% 解决逻辑关系为 "一对一" 数据的存储问题,但在解决某些特殊问题时,单链表并不是效率最优的存储结构。比如说,如果算法中需要大量地找某指定结点的前趋结点,使用单链表无疑是灾难性的,因为单链表更适合 "从前往后" 找,而 "从后往前" 找并不是它的强项,因此我们就有了双向链表这个东西,双向链表顾名思义就是链表的高级版,他与单向链表有所不同的一点在于在具有

2022-06-01 00:10:30 4575 14

原创 Java解析剑指Offer链表篇(2)

目录一、合并两个有序链表1、题目要求2、基本思路3、代码实现二、*链表分割1、题目要求2、基本思路3、代码实现三、删除链表中重复的结点1、题目要求2、基本思路3、代码实现一、合并两个有序链表1、题目要求将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。​​​​​​21. 合并两个有序链表 - 力扣(LeetCode)2、基本思路这个题目给出了两个升序的链表,需要我们合并为一个...

2022-05-23 19:32:36 667 12

原创 Java解析剑指Offer链表篇(1)

目录一、移除链表元素1、题目要求2、基本思路3、代码演示二、反转链表1、题目要求2、基本思路3、代码实现三、链表的中间结点1、题目要求2、基本思路3、代码实现四、链表中倒数第k个结点1、题目要求2、基本思路3、代码演示一、移除链表元素1、题目要求给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。203. 移除链表元素 - 力扣(Le...

2022-05-22 21:30:55 684 15

原创 Java实现简单图书管理系统

目录利物浦是冠军!一、图书管理系统的功能二、图书管理系统的基本实现思路1、Book包2、user包3、operation包4、利用Main函数来连接所有包三、图书管理系统的具体实现1、Book包(1)book类(2)bookList类2、operation包(1)IOperation接口的实现(2)图书管理系统功能实现3、User包(1)User类(2)AdminUser(管理员)与Normal(普通用户)类4、Main四、总...

2022-05-21 21:33:58 20398 28

原创 Java浅浅实现链表

目录一、链表的简单理解1、链表长什么样子?2、结点是什么?二、链表的代码实现1、结点的构建2、链表的构建3.查看链表长度4、查找是否指定元素是否在单链表当中5、在链表中指定位置插入元素(1)、尾部插入(2)、头部插入(3)、中间插入6、在链表指定元素第一次出现的删除(1)、尾部删除(2)、头部删除(3)、中间删除7、链表的打印(1)、打印整个链表(2)、从给定位置开始打印链表8、清空链表三、总结...

2022-05-14 21:39:37 1555 14

原创 Java实现顺序表

目录一、顺序表的简单理解1、为什么我们要以数组为基础来构建顺序表呢?2、顺序表都具有哪些功能二、顺序表的代码实现1、构建并且初始化顺序表2、在顺序表中添加元素1、判断需要添加元素的下标是否在顺序表的范围内2、如果添加元素下标合法,进行添加元素操作。3、判断顺序表是否满了满了的话我们需要进行扩容4、实现代码如下:3、打印顺序表中的元素4、判断顺序表中是否含有某个元素5、查找顺序表中元素的下标6、更新顺序表对应下标的元素值7、查找顺序表对应下标的元

2022-05-12 12:03:40 6325 28

原创 memmove和memcpy库函数的实现

目录一、memcpy函数1、描述2.实现二、memmove函数1、描述2、实现一、memcpy函数1、描述C 库函数 void *memcpy(void *dest, const void *src, size_t count) 从存储区 src复制 count个字节到存储区 dest。注:返回值:.src和dest所指内存区域不能重叠,函数返回指向dest的指针。2.实现void* my_memcpy(void* dest, cons...

2022-03-23 20:36:31 1103 13

原创 KMP算法详细解析(c语言篇)

1、什么是KMP算法KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息。KMP算法的时间复杂度O(m+n) [1] 。来自-------百度百科。2、KMP算法有什么用快速模式匹配算法,简称KM...

2022-03-22 23:56:23 6714 27

原创 c语言实现库函数

目录一.strlen函数1.描述2.实现1.计数的方法2.函数递归的方法3.指针 - 指针方法二.strcmp函数1.描述2.实现三.strcpy函数的实现1.描述2.实现四.strcat函数的实现1.描述2.实现五.strstr函数的实现1.描述2.实现1.BF算法实现2.kmp算法的实现一.strlen函数1.描述C 库函数 size_t strlen(const char *str) 计算字符串 .

2022-03-22 11:07:05 2354 13

原创 拳打脚踢解决BF算法QAQ

BF算法一.简介BF算法,即暴力 (Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。二.思路假如我们这里有一个主串(sub)"abdbbca",这边有一个子串(str)"bbca",我们需要在主串中寻找是否有子串在,如果在就返回对应下标,否则返回-1。我们可以利用两个.

2022-03-21 21:52:42 783 16

原创 关于倒置字符串输出问题

题目:将一句话里的单词进行倒置,标点符号不倒换。比如一句话“xian is beautiful!"倒换后变成"beautiful! is xian"。思路:先把这句话变成倒序,变成"lufituaeb si naix",然后对每个单词进行颠倒(遇见空格时就是一个单词的间隔),得到"beautiful! is xian"当然每个单词的长度都是不一样的,字符串的操作也变得很难实现,因此我们应该借助指针来完成这些操作(这也是本题的一个难点)。代码实现:#include<stdio.h&gt

2022-02-28 22:34:24 655 11

原创 c语言实现二分查找法

目录一.前言二.二分查找法1.什么是二分查找法2.如何用c语言来实现二分查找法三.总结一.前言假如今天我们需要在一个有序的数组中来寻找一个数的下标,就用"1,2,3,4,5,6,7,8,9"这九个数组成的数组来说,假如我们想寻找'2',那很简单我们只用从小到大开始寻找,寻找两次就完成了,但是我们想寻找'7',我们继续用从小到大挨个寻找,这就显得有点慢并且耗时长还没有效率,因此我们可以有一种全新的方法,二分查找法来解决这个问题。二.二分查找法1.什么是二分查找法二分查找

2022-01-16 18:30:33 17611 20

原创 c语言实现和电脑对峙三子棋

前言前两天在牛客网写了一道题,关于KiKi和BoBo玩 “井”字棋,请根据棋盘状态,判断当前输赢。也就是说系统给你一个已经下好的棋,让你来判断谁输谁赢还是平局。写完这道题也不禁让我有点想法,能不能写一个代码来实现我和电脑对峙三子棋,边下棋系统边判断是否输赢或者平局,否则继续下棋。经过一天查阅资料,观看视频,自己实践,终于实现了我当初的想法,现在来分享给大家我自己的思路。三子棋一.准备需要的函数1.棋盘①构建三子棋的棋盘肯定是必不可少,我们可以利用void函数来实现一个空的棋盘,让..

2022-01-10 17:31:42 3196 13

原创 递归函数典型应用

1.斐波那契数列①思路:这个题首先我们得明白斐波那契数列。斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列例如:1 1 2 3 5 8 13.......这样的数列。观察上面的数列我们不难发现斐波那契数列第三项开始,每一项都等于前两项之和。我们可以利用递归函数来实现它,把0和1当做这个递归的结束标志来完成这一系列操作②代码实现:#include<stdio.h>int F(int x){ if (x == 1 || x ==

2021-12-29 16:35:42 1236 14

原创 判断数是否为素数与素数输出

素数的概念:素数也叫质数,是一种只能被自己本身和1整除的数并且大于1,当然0与1不是素数。1.判断单个数是否为素数(多组输入)我的思路是,首先输入一个数,利用素数的概念来判断是非为素数,是的话输出素数;否则不输出。关于素数的判断首先我们吧输入的数当初被除数,我选择用一个for循环来实现,从2开始当除数,每轮加1,一直循环去除被除数,一直除到被除数减一那个数,要是期间能被一个数整除则跳出循环不为素数,要是一直没有被整除则输出这个素数。#include<stdio.h>int m

2021-12-26 13:29:03 2073 14

原创 冒泡排序与选择排序

一.冒泡排序1.概念冒泡排序这种排序方法其实关键词就在于冒泡两个字,顾名思义就是数字不断比较然后最大的突出来,也就是说把相邻的两个数字两两比较,当一个数字大于右侧相邻的数字时,交换他们的位置,当一个数字和他右侧的数字小于或等于的时候,不交换。2.图解关于冒泡排序我自己画了一幅图来描述他的一轮过程这里我举了五个无序的数{7,3,6,5,4}由此可看出他不断与右侧相邻的数字进行比较,当他大于右边的数字就交换,否则不交换,就用这种方法不断进行排序进行很多轮,最后得出一个有序的序列...

2021-12-23 00:00:26 9459 9

原创 存入数组数据,找出最大值和最小值

这个问题我们需要考虑两点:1.存入数组的数据2.找出数组的最大值还有最小值。解决问题1:我们可以利用for循环依次输入数据进入数组中。解决问题2:我们可以设定两个值max和min,让他们俩的初始值为0也就是数组的第一位假如数组为a[size],那么就可以设max=min=a[0],然后用for循环读出数组的每个元素,要是大于max,那么max就等于嘞个元素,要是小于min,那么min就等于嘞个元素。这样就得出了结果我的代码如下#include<stdio.h>int main

2021-12-20 23:59:02 2078 8

原创 打印图案练习(三道题)

今天做了一些关于打印图案的练习,写下这篇博客来分享自己对题目的思考还有自己的想法,来给大家一些参考的价值。1.一个整数(1~20),表示正方形的长度,也表示输出行数#include<stdio.h>//多组输入,一个整数(1~20),表示正方形的长度,也表示输出行数。void test(int a){ int i; for (i = 0; i < a; i++) { printf("*"); } printf("\n");}int main(){ int

2021-12-19 00:15:26 993 3

原创 获得月份天数

假如鱼鱼想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天?这个题的难点在与闰年的二月时间判断,而且还要注意多组输入,因此得用while函数并且记着EOF(这可不是EMO),对于这个题我采取了两种方法,一种构建函数来得到二月的天数,一种是直接判断是否为闰年然后判断二月天数(闰年二月为29天,不是闰年是28天)我也搜了关于闰年的判断所以目标明确咱们就开始帮助鱼鱼解答问题!1.构建函数#include<stdio.h>int Leap_year.

2021-12-17 23:16:38 311 10

原创 关于四位数的反向输出

这个题我在昨天晚上写的时候,发现了很多种解法,现在分享一下自己的思路来给需要的人。1.利用int类型直接取整来求出目标数(从四位数的前面往后面开始读取)#include<stdio.h>//int main()//将一个四位数,反向输出。{ int a, b, c, d, e; scanf_s("%d", &a); b = int(a / 1000);//1 c = int((a - b * 1000) / 100); d = int((a - b * 1000

2021-12-16 00:01:00 5983 6

原创 浅谈三目运算符

百度对于三目运算符的定义如下:三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。三目运算符的应用格式如下<表达式1> ? <表达式2> : <表达式3>,意思就是假如表达式1是真,那么就去执行表达式2,否则就执行表达式3.举个例子吧#include<stdio.h>int main(){ int a = 0;..

2021-12-14 22:40:15 2982 10

原创 比较两个数还有三个数的大小

我写了两种代码,有需要的朋友可以参考1.不构建函数来找出最大的数#include<stdio.h>int main(){ int x, y, z; scanf("%d %d", & x, &y); z = x > y ? x : y;//利用三目来求出最大值 printf("%d", z); return 0;}2.构建外部函数来求出最大值#include<stdio.h>int bidaxiao(int x, int y)

2021-12-13 20:48:16 5523 6

原创 浅谈局部变量与全局变量

今天来简单来谈谈自己理解的局部变量与全局变量,用自己的方式来解释这两个东西一.基本概念在百度局部变量的解释是这样的:局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。局部变量的作用域是定义该变量的函数或定义该变量的复合语句。局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束。而全局变量的解释是这样的:全局变量,既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。二.解释意思其实很简单就是他局部变量这个东西只..

2021-12-12 00:30:47 550 5

原创 起点

一.自我介绍大家好,我是一名来自陕西科技大学人工智能专业的一名普通的大二学生,你们可以叫我班尼,我热爱足球,热爱利物浦,奥对了外加一个热爱生活,但是今天当我在Visual Studio2019(感谢倩倩给我说全称)成功输入出了算是我这辈子第一次自己打的代码hello world,我就知道我开始热爱编程这东西了哈哈哈哈,因此我打算踏入这一片未知的领域,跟曾经的范戴克一样,去挑战自我,去做自己热爱的事情,我俩唯一的区别只在与他已经实现自己的价值,而我正在实现自己价值的路上而已。二.我的目标首先我认为c语言

2021-12-11 00:56:54 2119 4

空空如也

空空如也

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

TA关注的人

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