自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 通过I2C读取显示器的EDID信息

EDID是一种标准,通过I2C读取VGA的EDID信息

2022-03-10 22:00:26 5372

原创 VMware Workstations 虚拟机和主机网络配置

在Windows上安装虚拟机,是在学习使用Linux时的常用手段,在当我们安装好虚拟机之后,怎么配置虚拟机和物理机直接的网络通信呢,这里以Ubuntu系统为例先简单描述一下NAT和桥接在安装虚拟机的时候,一般来说,都会默认配置一个网卡,通过Net模式或者桥接和物理机连同,同时也会连接到互联网。NAT是通过网络地址转换接入互联网,桥接则直接是将虚拟机网卡桥街到物理机网卡接入互联网。在NAT模式下,物理机-虚拟机-虚拟机直接是可以相互连通的,但是物理机ip和虚拟机ip不在同一网段。在桥接模式下,虚拟机网卡直

2022-03-09 22:54:43 3689

原创 fgets函数的使用

#include <string.h>int main(){ char s[20] = "hello world!"; FILE *fp = fopen("test.txt", "r"); //txt中的内容为 hi /* printf("%s\n", fgets(s, 1, fp)); //这里返回的是空的字符串,所以会输出一个'\n' pr..

2021-03-05 23:15:21 366

原创 python:命令行参数在Usage中的使用

import sysdef usage(): print('{0} Usage:'.format(sys.argv[0])) print(' -h: for help') print(' just for test')for i in sys.argv[1:]: if i == '-h': usage() else: print("error option") usage()if len(sys.arg

2021-03-04 23:21:36 5532 1

原创 strchr函数使用

#include <string.h>char *strchr(const char *s, int c);The strchr() function returns a pointer to the first occurrence of thecharacter c in the string s.函数返回字符c(这里的类型为int)在字符串s中的第一个位置。#include <string.h>int main(){ char *s = "hello

2021-03-03 23:35:58 267 1

原创 Python与数据结构——二叉排序树

今天写二叉排序树class BTNode: def __init__(self, data=None, left=None, right=None): self.data = data self.left = left self.right = rightclass BST: def __init__(self): self.root = None # 头指针 def insert(self, data):

2020-10-04 13:54:32 201

原创 Python与数据结构——队列

再来一篇,用Python写队列class Queue: def __init__(self): self.vec = [] def is_empty(self): return len(self.vec) == 0 def push(self, data): self.vec.append(data) def pop(self): return self.vec.pop(0) def head(

2020-10-01 16:30:58 95

原创 Python与数据结构——栈

今天用python来写栈的代码class Stack: def __init__(self): self.arr = [] self.size = 0 def length(self): return self.size def push(self, data): self.arr.append(data) self.size += 1 def top(self): ret

2020-10-01 16:04:19 116

原创 Python与数据结构——单链表

今天用Python写单链表的代码class SLinkNode: def __init__(self, data=None, next=None): self.data = data self.next = nextclass SLink: def __init__(self): self.head = SLinkNode() #头结点 self.size = 0 def is_empty(self):

2020-09-30 19:16:03 225

原创 红黑树的删除操作

红黑树删除时的情况由于红黑数是有序树,当删除红黑色的一个结点时,用它的后继结点(也可以是前驱结点)来代替它,然后去删除它的后继结点(或者前驱结点)。后继结点是右子树中值最小的结点(前驱结点是左子树中值最大的结点)。可以知道,后继结点一定没有左子树(前驱结点一定没有右子树),所以,当在红黑树中删除一个结点时,只会有以下两种情况:1.删除的结点只有一个孩子2.删除的是叶子结点情况1此时,要删除的结点(N)只有一个孩子(可以是左孩子(NL),也可以是右孩子(NR)),由红黑树的性质,可以知道,N一定是

2020-09-03 20:22:22 378

原创 红黑树的插入操作

红黑树插入时的情况红黑树是有序树,在插入一个节点时,插入的结点一定会成为叶结点,且插入的结点一定要是红色的。那么,插入时就可能会产生颜色冲突,即插入结点 N 和 它的父节点 P 的颜色都是红色。如果 P 是黑色,没有冲突,直接插入就好。颜色冲突问题解决要明确,在红黑树插入节点 N 时,如果出现颜色冲突,一定需要关注它的叔叔节点 U,这时,自然要先找到 N 的祖父节点 GP。情况分析冲突时,N 和 P 都是红的,因为树本身原本是一颗红黑树,此时 GP 一定存在且为黑。分析 U 的情况:—— U

2020-08-22 16:13:22 1042

原创 习题:整数分解问题

题目给定一个正整数,将它进行如下分解:66=1+1+1+1+1+16=1+1+1+1+26=1+1+1+36=1+1+2+26=1+1+46=1+2+36=2+2+26=1+56=2+46=3+3也就是说将一个正整数分解成比它小的若干个正整数的和,求总共多少种分解方法。思路...

2020-08-07 23:16:07 709

原创 习题:八皇后问题

题目八皇后问题,在 8×8 的国际象棋棋盘上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法,并打印每一种摆法。

2020-08-02 17:43:31 917

原创 C语言高级指针(数组指针,函数指针)

C语言中指针的运用最为重要,在熟练使用一级指针之后,高级指针便接踵而来,今天就来介绍高级指针。二级指针 (int ** p)对于一级指针 int * q 来说,q是一个int * 类型的变量,指向一个 int 类型的变量。对于二级指针 int ** p 来说,p是一个 int ** 类型的变量,指向一个 int * 类型的变量,即 p 指向一个一级指针变量。#include <stdio.h>int main(){ int **p = NULL; int *q =

2020-07-26 15:23:17 330

原创 习题:逆序字符串中的每个英文单词

题目写个函数,把一个字符串里的函数逐个单词逆序,字符串中只包含字母和空格。例如"Hello world Python" —> “olleH dlrow nohtyP”。思路在思考前我们先思考以下问题:1.如何对一个单词进行逆置?2.如何在一个字符串中依次找到每个单词?解答1:逆置方法可以用start和end指针分别指向单词开头和结尾,当start<end时不断循环,交换指针指向的两个字符,再让start自加、end自减即可。解答2:对于一个只有空格字符和字母的字符串,毫无疑问

2020-07-21 20:28:51 449 1

原创 习题:输出螺旋矩阵

题目输入一个维度n 求输出螺旋矩阵。例1: 3 1 2 3 8 9 4 7 6 5例2: 4 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7思路对于一个二维数组,从1开始给元素赋值,依次方向是 → ↓ ← ↑ ,不断循环,直至所有元素赋值结束。那么,就需要明确以下两个问题:1.如何区别方向?2.如何判断是否达到边界?达到边界说明方向需要改变。对于区别方向,只需要定义一个direction变量,其值:0表示→,1表示↓,2表示←,3

2020-07-21 13:49:51 722

原创 C语言中如何交换两个变量的值

在C语言中,经常需要交换两个变量的值,那么如何去交换两个变量的值呢?方法其实是很多的。

2020-07-20 11:34:51 5954 1

原创 “&&”和“||”的短路特性与简单分支语句、三目运算符与简单分支语句

在C语言中,逻辑与和逻辑或是常常使用的逻辑运算符,下面来讨论一下它们的短路特性。&&大家都知道对于 && 来说,只有当其两端均为逻辑真时,结果才是真,那么,它是如何判断为假呢?在书本上给出的都是这样的:False && True 为 FalseTrue && False 为 FalseFalse && False 为 False于是,可以知道,只要有一端是False,结果就是False。...

2020-07-18 21:39:08 414

原创 整型数据的范围

在计算机中,数据是用二进制存储的,即是一段连续的0、1的组合。那么,一个整型变量,它能表达的数据的范围是多大呢?有符号的char (char)char类型的数据占一个字节,总共8 bit,即有8个二进制位,每个位置都可以用0或者1填充,那么总共可以表示28个数据。但是,由于第一个bit需要用来存储整型数据的符号,那么可以知道,这28个数据负数会占掉一半(最高位是1表示负数,最高位0表示0或者正数),即可以表示的最小值是 -27,这样还剩下0和正整数,0占一个数据,还剩下27-1个数据来表示正数。自然,

2020-07-17 19:11:06 5345

原创 Linux下用C语言做小老鼠推箱子的游戏

前面有Linux的常用命令和vim文本编辑器还没有介绍,之后我会补上的。今天来介绍如何用C语言写一个简单的小游戏,叫做“小老鼠推箱子”。虽然游戏的编写过程不复杂,但是我觉得能够从中找到自己对于编程的不足和完善自己的编程思维是最重要的。游戏代码不多,所以直接写在一个c文件中。本人小白,有不足之处还望指教游戏介绍下图是游戏开始界面,$是小老鼠,#是墙,O是终点,当小老鼠把所有箱子推进终点就代表游戏通过。游戏思维游戏地图用一个二维数组去存储。数组中不同的值代表不同的对象(老鼠、墙、路等)。当小老鼠在

2020-07-15 19:52:22 3273 1

原创 Linux操作系统的简单配置

记录自己的学习过程上一篇已经介绍了如何在widows下通过虚拟机安装Linux操作系统,本篇文章将介绍对Linux操作系统的简单配置,这些配置是为今后的学习服务的。网络设置在Oracle VM VirtualBox中选中虚拟机,点击设置–>网络,将连接方式设置为”网络地址转换“即可。关闭自动升级我们点击右上角的设置,选择软件更新。在更新管理器中点击左下角的设置,打开。在”更新“选项中将,”自动检查更新“设置”从不“,”安全更新“设置”自动下载安装更新“,最后选择”从不“通知。然后点

2020-07-12 19:32:09 973 1

原创 Windows上的Linux环境搭建

在Linux下进行代码的编译和运行是必须掌握的技能,文章展示在Windows在通过虚拟机搭建Linux环境的过程。准备工作Oracle VM VirtualBox软件,Ubuntu系统镜像。搭建过程Oracle VM VirtualBox 是一款免费的虚拟机软件,可以从网上免费下载,安装过程比较简单就不介绍了,直接进入Linux环境的搭建。这是Oracle VM VirtualBox的软件界面,我已经创建过两个Linux环境了。点击左边的新建按钮,输入名称,这个名称可以按自己的喜好命名。这里需要

2020-07-12 14:59:51 1570 1

get_keyboard.h

是用来在小老鼠推箱子游戏中获得键盘输入的头文件,能够从键盘上获得输入,并且不会把字符打印到屏幕上,仔细阅读,以至于了解用法。

2020-07-21

空空如也

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

TA关注的人

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