- 博客(39)
- 资源 (1)
- 问答 (3)
- 收藏
- 关注
原创 算法学习笔记——单双链表及其反转—堆栈诠释
什么是单链表,单链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null单链表不要求逻辑上相邻的两个元素在物理位置上也相邻,因此不需要连续的存储空间单链表的入口节点称为链表的头结点也就是head// 结点的值// 下一个节点// 节点的构造函数(有两个参数)
2024-06-26 00:26:49 891
原创 设计模式原则——里氏替换原则
与开闭原则不同的是开闭原则可以改变父类原有的功能,里氏替换原则不能修改父类的原有的性质,即使子类扩展了父类的功能,也不能改变父类的原有功能。信用卡继承并重写储蓄卡的功能,破坏了里氏替换原则,根据里氏替换原则进行修改。继承必须确保父类所拥有的性质在子类中依然成立。提高兼容性、维护性和扩展性。
2024-06-23 23:44:33 582
原创 设计模式——设计模式介绍
设计模式设计模式介绍设计模式:系统服务设计中针对场景的一种解决方案,可以解决功能逻辑开发中的共性问题,并非所有问题一种开发思想,每个设计模式都有解决某一类问题的概念模型,不要拘束于一种的固定的代码格式,要根据具体场景做出变化同一种设计模式,不同场景,不同代码实现方式,以及不同开发人员去实现,都会有不同的代码方案高内聚、低耦合和可复用的特点在组件中使用比较频繁,比如:RPC框架,引擎的决策树等主要通过实际案例来理解学习,不要只通过硬背概念,这样实际应用中存在问题设计模式的类型:创建型模
2024-06-22 17:16:59 925
原创 算法学习笔记——算法和数据结构简介
精确求解大厂算法和数据结构笔试、面试题、acm比赛或者和acm形式类似的比赛,考虑的都是硬计算类算法但是某些问题使用硬计算类的算法,可能会让计算的复杂度较高。
2024-06-06 22:18:59 270
原创 算法学习笔记——时间复杂度和空间复杂度
因为一次扩容后可能很久不会再扩容了,每次都计算整体的复杂度太麻烦就把每次扩容能分摊到的时间复杂度进行计算,看整个过程调用了多少次来估计整体的时间复杂度。涉及动态数组,先申请一个固定大小的数组,当数组不够用时,再申请一个相应倍数的数组,把旧数组中的值拷贝到旧数组中,一共加入了N个数总代价,单次调用是。链表的get(i)方法不是常数操作,因为链表不是连续的存储空间,靠着指针链接着,要靠头节点一个个的往下查,是一定要查找这么多个数的。比如只有一个while的循环的冒泡排序,其实时间复杂度是。
2024-06-04 23:47:45 816 1
原创 算法学习笔记——二分搜索
0位置不是峰值,N-1位置不是峰值,则呈现左边上扬右边下降的趋势,这中间会出现一个或者多个峰值。数组条件:数组中相邻的两个数不相等, 只返回一个峰值就行。为峰值,如果右边或者左边没数值可以认为是无穷小。
2024-06-02 11:56:35 779
原创 算法学习笔记——对数器
对数器的门槛其实是比较高的,因为往往需要在两种不同思路下实现功能相同的两个方法,暴力一个、想象中的最优解是另一个。以后的很多题目都用到对数器,几乎可以验证任何方法,尤其在验证贪心、观察规律方面很有用。关键是第5步,找到一个数据量小的错误样本,便于你去带入debug。然后把错误例子带入代码一步一步排查。Print大法、断点技术都可以。
2024-06-02 11:56:01 357
原创 算法学习笔记——二进制
例如:-2 :0010 -> 0010 - 1 -> 0001 -> 取反 -> 1110。因为1是一个int类型,只有32位,所以(1
2024-06-02 11:54:13 472
原创 小区物业管理系统
Java Swing 框架:Swing采用MVC(model-view-controller,模型-视图-控制器)设计模式,模型用于维护组件的状态,视图是组件的可视化表现,控制器用于控制各个事件,组件做出怎么样的响应。通过java写出登录界面、注册界面、忘记密码界面、用户端界面和管理端界面,再用java的JDBC 进行数据库的连接,应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等操作,完成登录、注册、忘记密码等功能需求。根据账号类型进行相对应的账号注册。
2024-05-21 21:55:07 842
原创 Java接口和多态练习
在测试类中定义一个 用手机的方法,要求该方法既能接收老手机对象,也能接收新手机对象。 在该方法内部调用打电话,发短信以及新手机特有的玩游戏方法。定义新手机继承手机类实现IPlay接口。行为:继承父类的行为,重写玩游戏方法。 行为:打电话,发短信。 行为:继承父类的行为。
2022-09-18 08:44:34 1287
原创 java获取随机数
第一步:导包:import java.util.Random;第二步:创建对象:Random r = new.Random(); r是变量名可以改变第三步:进行变量赋值:例如:int i = r.nextInt(number);//随机的范围为0~number-1,r.nextInt()括号内填入的数字觉得结束的范围。//秘诀用来生成任意数到任意数之间的随机数 例如 7~51.让这个范围头尾都减去一个值,让这个范围从0开始 -7 使范围变成0~82.尾巴+1 8 + 1 = 93. 最终的
2022-08-05 16:30:37 523
原创 定义一个结构体变量,包含年、月、日。根据控制台给出的日期,计算该日在本年中是第几天,注意闰年问题。
#include<stdio.h>#include<time.h>int main(void){ int n, sum = 0; struct { int year; int month; int day; }date; printf("请输入年份:"); scanf_s("%d", &date.year); printf("请输入月份:"); scanf_s("%d", &date.month); printf("请输入日期:");
2022-05-30 16:41:30 978
原创 数据处理器(编写一个程序,提示用户输入3组数,每组数包含5个double类型的数 (假设用户都正确地响应,不会输入非数值数据))
题目:编写一个程序,提示用户输入3组数,每组数包含5个double类型的数(假设用户都正确地响应,不会输入非数值数据)。该程序应完成下列任务。a.把用户输入的数据储存在3×5的数组中b.计算每组(5个)数据的平均值c.计算所有数据的平均值d.找出这15个数据中的最大值e.打印结果每个任务都要用单独的函数来完成(使用传统C处理数组的方式)。完成任务b,要编写一个计算并返回一维数组平均值的函数,利用循环调用该函数3次。对于处理其他任务的函数,应该把整个数组作为参数,完成任务c和d的函数应把
2022-05-29 17:27:58 937
原创 输入3个字符串,按从小到大的顺序输出。使用指针实现,可使用strcpy和strcmp库函数。
输入3个字符串,按从小到大的顺序输出。使用指针实现,可使用strcpy和strcmp库函数。#include<stdio.h>#include<string.h>int main(void){ char a[] = { "Holle" }; char b[] = { "World" }; char c[] = { "Thank" }; char* Temp; //中间变量 char* ad[] = { a,b,c }; //利用指针数组存储地址 for(int i
2022-05-23 19:46:40 2515
原创 自定义一个类似strcmp()函数,比较两个字符串的大小。
自定义一个类似strcmp()函数,比较两个字符串的大小。#include<stdio.h>#include<string.h>int Strcmp(const char* str1, const char* str2);int main(void){ char str1[10]; char str2[10]; strcpy_s(str1, 10, "AbcD"); strcpy_s(str2, 10, "AbCd"); int data = Strcmp(str
2022-05-23 16:46:26 919
原创 使用指针实现冒泡排序的数组元素升序排列
使用指针实现冒泡排序的数组元素升序排列。#include<stdio.h>void bubarray(int a[], int n);int main(void){ int a[] = { 0,-1,-2,4,3,1,20,15 }; int n = (int)sizeof(a) / sizeof(a[0]); printf("Initial results:\n"); for (int i = 0; i < n; i++) printf("%d ", a[i]);
2022-05-23 16:30:41 866
原创 使用指针实现: 输入两个字符串,将这两个字符串连接后输出。
使用指针实现: 输入两个字符串,将这两个字符串连接后输出。#include<stdio.h>#include<string.h>void data(char* ch_1, char* ch_2);int main(void){ char ch_1[100], ch_2[100]; printf("Please enter ch_ 1 array assignment: "); gets_s(ch_1, 100); printf("Please enter ch_ 2
2022-05-23 15:33:23 5085 1
原创 使用指针插入元素,在升序的数组中插入一个数,使插入后的数组仍然有序。
使用指针插入元素,在升序的数组中插入一个数,使插入后的数组仍然有序。#include<stdio.h>void data(int* p,int t);int main(void){ int a[10] = { 10,20,3,5,1,6,2,0,-1 }; int Temp = 0; for(int i=0;i<9;i++)//冒泡法排序 for (int j = 8; j >= i; j--) { if (a[j] < a[i]) {
2022-05-23 14:30:37 1062 1
原创 输出1到5的阶乘值。
输出1到5的阶乘值。自定义一个函数fac,在主函数中对1~5循环时调用此函数fac。fac函数中使用局部静态变量,用来存放上次调用结束时的值,此变量初值只赋值一次。#include<stdio.h>int fac(int i);int main(void){ printf("Factorial values from 1 to 5:\n"); for (int i = 1; i <= 5; i++) printf("%d!=%d\n",i,fac(i)); return
2022-05-09 16:15:59 2077
原创 有5个人坐在一起,问第五个人多少岁?(每一个数字对应的年龄应由上一个数字的年龄决定,考虑采用递归函数解决。)
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他 说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第1个人大两岁。最 后问第1个人,他说是10岁。编写程序当输入第几个人时求出其对应年龄。 编写函数age,形式参数为数字。每一个数字对应的年龄应由上一个数字的年龄决定,考虑采用递归函数解决。age(5)=age(4)+2; age(4)=age(3)+2; age(3)=age(2)+2; age(2)=age(2)+2; age(1)=10#include&
2022-05-09 14:17:07 2115 1
Image bgImage = null;
2022-09-29
关于在vs上运行的出现的问题!(标签-ar|关键词-字符串)
2022-04-25
关于#vs#的问题,如何解决?(标签-安全|关键词-window)
2022-03-25
c语言scanf()的使用问题
2021-11-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人