- 博客(36)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 数据结构之树
文章目录二叉树基本操作二叉树非递归遍历二叉树基本操作 学习用递归函数: 1、求二叉树 叶子数量 2、求树的高度 3、拷贝二叉树 4、递归遍历 5、释放二叉树#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <time.h>#includ
2021-07-11 17:07:18
136
原创 数据结构之栈和队列
文章目录栈顺序栈链栈队列顺序队列分文件编写seqQueue.hseqQueue.c主程序链队列分文件编写linkQueue.hlinkQueue.c主程序栈1、栈是否可以遍历? 不可以遍历2、遍历:不重复不遗漏访问容器中每个元素,访问之后元素不会发生改变——非质变算法3、栈底——高地址,栈顶——低地址顺序栈 1、数组的首地址,做栈顶还是作栈底? 首地址端做 栈底,原因是 栈顶频繁做入栈和出栈操作,对于数组尾部做插入删除效率高 2、接口 (1)初始化栈 (2)入栈 (3)出栈
2021-07-11 16:58:37
376
原创 数据结构之插入排序
插入排序算法思路具体实现算法思路这里讨论的是 从小到大 排序外层遍历数组,变量— i内层 的 j = i-1如果 arr[ i -1 ] > arr[ i ] ,将 arr[ i ] 数据缓存,用 temp 接收然后内层 j 开始将元素后移——可以发现 空位置始终在 j+1 处找到指定的位置将 temp 值插入——在j+1的位置赋值temp具体实现void insertSort(int arr[], int length){ for (int i = 0; i < le
2021-07-11 16:23:34
154
原创 数据结构之单向链表
文章目录单向链表功能模块细节讲解测试截图单向链表功能模块1、//初始化链表 LinkList init_LinkLIst()2、//插入链表void insert_LinkList(LinkList list, int pos, void* data)3、//遍历链表void foreach_LinkList(LinkList list,void(*myForeach)(void*))4、//删除链表 ,按位置void removeByPos_LinkList(LinkLi
2021-07-03 22:48:55
240
1
原创 数据结构之动态数组的实现
文章目录动态数组整体总览功能模块细节说明测试结果动态数组整体总览功能模块1、//初始化数组struct dynamicArray* init_DynamicArray(int capacity)2、//插入数组void insert_DynamicArray(struct dynamicArray * array, int pos, void * data)3、//遍历数据void foreach_DynamicArray(struct dynamicArray* array,vo
2021-07-03 20:46:32
213
原创 函数指针学习
函数指针定义的三种方式函数指针数组定义的三种方式符号说明void函数返回值类型(*FUNC_TYPE2)函数指针名(int, char)参数列表 void func(int a , char c) { printf("hello world\n"); } //1、先定义出函数类型,再通过类型定义函数指针 typedef void(FUNC_TYPE)(int, char); FUNC_TYPE* pFunc = func; //pFunc(1
2021-06-30 13:59:59
104
原创 读取配置文件&加密解密文件
文件目录读取配置文件加密&解密读取配置文件 1. 文件中按照键值对方式 存放了有效的信息需要解析出来 2. 创建 config.h 和 config.c做配置文件读操作 3. 获取有效信息的行数 getFileLines 4. 判断字符串是否是有效行 int isValidLines(char *str) 5. 解析文件到配置信息数组中 6. 通过key获取value值 7. 释放内存5. 解析文件到配置信息数组中void parseFile(char * file
2021-06-21 11:41:57
327
原创 结构体嵌套一级指针
目录测试函数allocateSpace()printPerson(struct Person** pArray, int length)freeSpace(struct Person ** pArray, int length)结果截图测试函数结构体struct Person{ char* name; int age;};void test01() { struct Person** pArray = NULL; pArray = allocateSpace(); //打印数组
2021-06-15 16:04:14
100
原创 结构体的深浅拷贝
目录浅拷贝深拷贝浅拷贝逐字节拷贝struct Person{ char name[64]; int age;};void test01() { struct Person p1 = { "Tom",18 }; struct Person p2 = { "Jerry",20 }; //浅拷贝:逐字节拷贝 p1 = p2; printf("p1的姓名:%s 年龄:%d\n", p1.name, p1.age); printf("p2的姓名:%s 年龄:%d\n", p2.na
2021-06-15 15:32:51
77
原创 数组&指针数组的选择排序
排序数组排序指针数组排序数组排序1、记录最小值的下标为i2、更新真实最小值下标3、判断真实最小值下标 是否与开始认定的i相等,如果不等,交换元素void mySort(int arr[],int length) { for (size_t i = 0; i < length; i++) { int min = i;//记录最小值的下标为i for (size_t j = i+1; j < length; j++) { if (arr[min] > arr[
2021-06-15 15:08:11
354
原创 数组名&数组指针
数组一维数组名输出打印函数数组指针定义方式二维数组名二维数组三种声明方式二维数组名作参数一维数组名有两种特殊情况,一维数组名不是 指向第一个元素的指针 1、sizeof 2、对数组名取地址 得到数组指针 步长是整个数组长度arr数组名 它是一个指针常量 指针的指向不可以修改的,而指针指向的值可以改 int * const a ; arr[0] = 1000; arr = NULL;--------》报错void test01() { int arr[5] = { 1,2,3
2021-06-15 14:50:23
158
原创 03-XML解析
XMLxml解析xml文件形式具体使用xml解析XML解析 * XML简介:eXtensible Markup Language(可扩展标记语言) * XML与HTML区别 * XML没有预定义标签,均为自定义标签,HTML相反 * XML用来传输和存储数据,HTML用来显示数据xml文件形式这里是创建的一个Student类,里面有三个属性:id name age<?xml version="1.0" encoding="UTF-8"?>
2021-06-10 12:33:25
78
原创 02-jquery
验证是否导入jquery库<script type="text/javascript" src="../script/jquery-1.7.2.js"></script><script type="text/javascript">//验证是否导入js库// alert($); $(function(){ $("#btnId").click(function(){ alert("hello,jQuery"); }); });</scri
2021-06-10 10:09:35
85
原创 01-js嵌入方式(3)
知识点:<body> <!-- * js的嵌入方式 1. 行内js,写到标签的事件属性中:结构与行为相耦合,不建议使用 2. 内部js,写到script标签中,script标签放到head标签中,无法获取按钮对象 3. 外部js,引入外部js文件 * <script type="text/javascript" src="demo.js"></script> * 如果script标签中有src属性,此时该标签的作用是引入外部j
2021-06-10 09:34:35
94
原创 SSM的项目搭建
**pom.xml**<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach
2021-06-09 21:31:14
73
原创 ssm(springboot)项目搭建
项目手动搭建 1. 创建一个maven工程 2. 集成父工程 3. 引入web依赖 4. 引入jsp依赖 5. 引入spingboot整合maven的插件//集成父工程 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <
2021-06-09 21:24:25
170
原创 01-DOM
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>HelloWorld</title><script type="text/javascript"> //借助window.onload事件,在这个页面加载完成后执行程序代码 window.onload = function(){ //获取按钮对象 var btnEle = document.g
2021-06-09 14:06:57
84
原创 前端对登录信息验证
这里用的是document对登录信息的验证,要求用户输入名不能为空重点内容: 1. var subEle = document.getElementById("btnSub")//通过id获取按钮元素 2. subEle.onclick //监听点击事件 3. unEle == null || ""== unEle //为空有这两种情况 4. return false; //一定要返回false<script type = "text/javascript"> window.
2021-06-09 11:47:30
569
原创 查找子串(基本方式)
查找子串int mySubstr(char *str, char * subStrstr)void test011()int main(void)这里在mySubstr()中声明两个临时指针进行子串比较#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <t
2021-06-09 09:22:35
1747
原创 sscanf()的模式匹配
利用sscanf()模式匹配%*s或%*d 跳过数据%[width]s 读指定宽度的数据%[a-z]匹配a到z中任意字符(尽可能多的匹配)%[aBc]匹配a、B、c中一员,贪婪性-%[^a]--匹配非a的任意字符,贪婪性-%[^a-z]表示读取除a-z以外的所有字符练习//已给定字符串为: helloworld@itcast.cn,请编码实现helloworld输出和itcast.cn输出。void test03(){ //1. 已给定字符串为: he
2021-06-09 09:16:36
384
原创 交换数据(异或方式)
C 交换数据方式(这里只是几种)int num1 = 9;int num2 = 5;//方法一:临时变量int tmp = num1;num1 = num2;num2 = tmp;//方法二:异或num1 = num1 ^ num2;num2 = num1 ^ num2;num1 = num1 ^ num2;//方法三:算术运算num1 = num1 + num2;num2 = num1 - num2;num1 = num1 - num2;...
2021-06-09 09:04:53
225
原创 2021-06-08
Springboot中的日志管理Slf4j+logback来实现具体实现重点:@Slf4jprivate static Logger log = LoggerFactory.getLogger(DemoController.class);3. 四个级别:debug—info—warning—error,从低到高4. 注意:报错只能报比设置等级高的错误设置:可以在application.properties中设置等级:# log日志logging.level.root = info
2021-06-08 23:17:40
102
原创 二级指针-文件操作
读取配置文件信息 ,并且将信息存放到 数组中 标题 注意: 释放堆区,关闭文件需要注意的是:对文件操作后,指针会移动,那么此时若想从头读取文件信息时,需要rewind()回到文件开始位置二级指针使用要注意是 主调函数创建 还是被调函数创建学会封装,将模块化思想牢记于心#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>
2021-06-08 18:48:48
178
原创 gcc编译四步骤
预处理 -E xxx.i 预处理文件 以hello.c为例。gcc -E hello.c -o hello.i1) 头文件展开。 --- 不检查语法错误。 可以展开任意文件。 2)宏定义替换。 --- 将宏名替换为宏值。 3)替换注释。 --- 变成空行 4)展开条件编译 --- 根据条件来展开指令。编译 -S xxx.s 汇编文件gcc -S hello.i -o hello.s 1)逐行检查语法错误。【重点】 --- 整个编译4步骤中最耗时的过程。..
2021-06-01 00:50:13
145
原创 文件基本操作
练习: 获取用户键盘输入,写入文件。**假定:用户写入“:wq”终止接收用户输入,将之前的数据保存成一个文件。**#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <time.h>#include <Windows.h>/*练习: 获取用户
2021-05-31 12:50:29
88
原创 文件版四则运算(简单的)
主要学习内容fputs()函数fgets()函数sprintf()函数sscanf()函数以及文件的打开和关闭#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <time.h>#include <Windows.h>void wri
2021-05-31 12:47:09
202
转载 阿里云镜像
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror><!--调整maven
2021-04-12 09:22:47
91
原创 Maven3.5版本,执行site命令报错
解决方案增加插件设置<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> </
2021-04-04 11:36:41
149
原创 01背包问题(回溯)
回溯法求解0-1背包问题 问题描述:略 解题分析:确定约束函数和限界函数 *约束函数:cw(i)+w(i)<=total_weight --重量 *限界函数:B(i) = cv(i)+r(i); --价值 解空间组织:树或图 树结构:子集树、排列树 搜索方式:深度优先算法的核心:回溯函数&限界函数,其中约束函数没有单独写出来,在代码中有用到//回溯函数//每个结点的左右子树都要判断,因为装或不装两种情况都要考虑void backtrack(int i){
2021-01-05 13:03:33
1380
1
原创 求N皇后问题所有解(分支限界法)
问题描述:略注意事项:这里用的是FIFO队列细节说明:代码里面有详细的注解代码及运行截图:#include <iostream>#include <vector>#include <queue>#include <fstream>#include <cmath>using namespace std;//定义一个结点类struct Node{ int layer;//当前结点所处层 vector<int> x
2021-01-03 21:01:00
3312
2
原创 JavaWeb 页面跳转
在Java web开发过程中,经常用到跳转。Java web中的跳转是指从一个web页面转到另外一个web页或者一个servlet转到一个web页面。Java web中的跳转分为两种。一种是客户端跳转,另外一种是服务器端跳转。客户端跳转有的地方又称为重定向,它的行为发生在客户端。因此,只要是客户端跳转,浏览器的地址栏一定会发生改变。服务器端跳转有的书上叫服务器转发,发生在服务器端,与客户端无关。因此,在浏览器的地址栏是不会发生任何改变的,因为跳转的行为发生在服务器端。客户端跳转(重定
2020-12-16 16:58:14
2812
原创 servlet中session的使用
什么是sessionHttp协议是无状态协议。所以服务端需要记录用户的状态时,就需要用某种机制来识别具体的用户,这个机制就是Session。Session:在网络应用中称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的web页时,如果该用户还没有会话,则web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务..
2020-12-07 16:01:10
1299
原创 计算机网络的部分学习总结
IP地址:用来唯一表示我们自己的电脑的,是一个网络标示端口号:用来区别当前电脑中的应用程序的UDP: 传送速度快,但是容易丢数据,如视频聊天,语音聊天TCP: 传送稳定,不会丢失数据,如文件的上传、下载UDP程序交互的流程发送端1,创建DatagramSocket对象2,创建DatagramPacket对象,并封装数据3,发送数据4,释放流资源接收端1,创建DatagramSocket对象2,创建DatagramPacket对象3,接收数据存储到DatagramPacket对象中
2020-12-03 20:25:07
87
原创 2020-11-13
10061 mysql连接不上 报错2003突然出现的数据库连接不上,花费了几个小时找解决方法。最后成功解决了!!!注意!!!一定要用管理员权限 打开终端。重新设置密码,下一次登录就可以使用密码等录了。...
2020-11-13 00:04:20
96
算法学习——基于C和C++的算法学习资料
2020-12-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人