自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树莓派避障小车(python)

本文章是通过控制树莓派GPIO端口间接控制L298N控件,进一步控制小车的马达和自动避开障碍的功能

2017-08-28 16:01:35 8290 3

原创 LED发光二极管电压

我为什么要阐述一下LED发光二极管的问题呢?因为我刚才用一个4.8V电池组烧坏了两个红色发光二极管。在第一次接入电池组的时候,发光二极管闪了一下,我还以为是供电不足或者接入不稳,又换了一个发光二极管,结果和前一个情况一样,闪了一下。最后百度了一下发光二极管的电压值,结果发现电压过大,把二极管烧了。下面是一般情况的二极管的电压值:红色发光二极管1.7-2.5V 绿色发光二极管2.0-2.4V 黄色

2017-08-24 17:06:47 1914

原创 ubuntu 对apahce的php 服务器使用

重启命令:sudo /etc/init.d/apache2 restart停止命令sudo /etc/init.d/apache2 stop开启命令sudo /etc/init.d/apache2 start

2017-08-22 20:25:24 362

转载 使用 RPI.GPIO 模块的脉宽调制(PWM)功能

脉宽调制(PWM)是指用微处理器的数字输出来对模拟电路进行控制,是一种对模拟信号电平进行数字编码的方法。在树莓派上,可以通过对GPIO的编程来实现PWM。创建一个 PWM 实例:p = GPIO.PWM(channel, frequency)启用 PWM:p.start(dc) # dc 代表占空比(范围:0.0 <= dc >= 100.0)更改频率:p.ChangeFrequency(fr

2017-08-21 10:50:29 1617 1

原创 使用bottle进行web开发:get的参数传递,form数据传递等

使用bottle进行web开发

2017-08-19 09:10:46 2950

转载 bottle嵌入html,css,js

Bottle轻量级框架嵌入HTML,CSS,JavaScript

2017-08-18 20:45:55 1872

转载 瓶框(bottle)架学习之模版使用

内嵌语句 只要在{{…}} 中的Python的语句返回一个字符串或有一个字符串的表达形式,它就是一个有效的语句。>>>from bottle import template>>>template('hello {{name}}', name='ju')u'helloju'>>>template('hello {{name if name else "world!"}}', name=None

2017-08-18 20:35:17 3288 1

原创 Python RPi GPIO编程控制

RPi.GPIO.setmode(naming_system)设置将GPIO针的命名方式。naming_system可用的取值有 RPi.GPIO.BCM 和 RPi.GPIO.BOARD,分别代表boardcom命名系统和树莓派板子上的命名系统。而因为使用BCM 的时候(据说)不同的版本BVM针脚定义不一样,所以同一套程序在多个树莓派系统上使用的时候建议用BOARD。RPi.GPIO.setup(

2017-08-18 13:02:16 2014

转载 宽度优先遍历(BFS)

BFS邻接矩阵描述#include <stdio.h> #include <malloc.h> #define VERTEXNUM 5 //队列的元素 typedef struct qElement{ int value; struct qElement* pre; struct qElement* next; }st_q

2017-08-18 10:10:40 1063

原创 初始化问题

本文章总结了C,C++,Java的非初始化是什么状态。下面直接看代码和运行结果进行对这三种编程语言的总结。 C语言#include<stdio.h>#include <stdlib.h>int main(){ int a[5][5]; for(int i = 0;i<5;i++){ for(int j = 0;j<5;j++){ print

2017-08-17 22:29:04 285

原创 *p和**p的区别

int *p :一级指针,表示p所指向的地址里面存放的是一个int类型的值 int **p :二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针(即p指向的地址里面存放的是一个指向int的一级指针) 例如: int i=10; //定义了一个整型变量 int *p=&i; //定义了一个指针指向这个变量 int **p1=&p; //定义了一个二级

2017-08-17 22:10:22 11957 1

转载 图的深度优先遍历

图的深度优先遍历又称为图的深度优先搜索。 本文章分为用邻接矩阵和邻接链表来进行图的深度优先遍历。可以用于个人学习,本人写博客的目的是便于复习和记录所学的重点和难点,所以不全请大家见谅邻接矩阵 #include <stdio.h> #include <malloc.h> #define VERTEXNUM 5 void createGraph(int (*

2017-08-16 21:00:22 1110

转载 图的建立与查找

本人做此文档用于复习,如有什么不明白的地方,可以留言。本文档是一步一步教你怎么写算法的,首先是建立一个节点,然后建立了一条线,之后用一个函数把线和节点联系起来,最后在把线和节点组成图。#include <stdio.h> //导入io包 #include <stdlib.h> #include <assert.h> //设置宏,用于断点检查错误。 //定义数据结构//定义线数据结构 typ

2017-08-16 17:12:19 448

转载 函数assert()详解

函数assert()详解: 断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式。预处理器产生测试该断言的代码,如果断言不为真,则发出一个错误信息告诉断言是什么以及它失败一会,程序会终止。 我们一般可以用在判断某件操作是否成功上。 摘录林锐博士高质量编程一书中相关内容。 ~~~~~~~~~~~~~~~~~~~~ 程序一般分为De

2017-08-16 16:23:41 1731

原创 佛洛依德冰山原理

冰山理论:是萨提亚家庭治疗中的重要理论,实际上是一个隐喻,它指一个人的“自我”就像一座冰山一样,我们能看到的只是表面很少的一部分——行为,而更大一部分的内在世界却藏在更深层次,不为人所见,恰如冰山。包括行为、应对方式、感受、观点、期待、渴望、自我七个层次。 这和我们的记忆相似,当意识是我们劳劳记住的东西,而前意识是我们记住的比较朦胧的东西,无意识虽然在我们脑子当中,但是我们无法直接去意识到。所

2017-08-16 14:37:55 2004 1

原创 Ngrok实现远程控制和操作树莓派(Raspbian系统)

第一步:注册Ngrok帐号。 第二步:添加隧道 第三步:根据自己的设备选择合适的Ngrok客户端 第四步:在本机搭建服务器(无论用什么方式搭建服务器,能用127.0.0.1访问即可) 第五步:不同的Ngrok有不同的连接方式,进行连接(反向代理自己主机的127.0.0.1:80,也可以设置别的端口,在Ngrok中可以管理隧道) 第六步:按照Ngrok给定的子域名进行访问测试自己搭建的网站。

2017-08-16 13:55:42 1112

原创 赫夫曼编码(基于赫夫曼树的实现)

上一篇文章中我们探讨了赫夫曼树的基本原理和构造方式,而赫夫曼编码可以很有效地压缩数据(通常可以节约20%-90%的空间,具体压缩率依赖于数据的特性)。 名词:定长编码,边长编码,前缀码(装B用的) 定长编码:像ASCII编码 变长编码:单个编码的长度不一致,可以根据整体出现频率来调节 前缀码:所谓的前缀码,就是没有任何码字是其他码字的前缀 赫夫曼编码是基于贪心算法实现的(我以后的文章中会提

2017-08-15 11:41:04 612

原创 如何安装树莓派摄像头

树莓派摄像头模块(Pi Cam)发售于2013年5月。其第一个发布版本配备了500万像素的传感器,通过排线链接树莓派上的CSI接口。而Pi Cam的第二个发布版本——也被叫做Pi NoIR中,配备了相同的传感器,但没有红外线过滤装置。因此第二版的摄像头模块就像安全监控摄像机一样,可以观测到近红外线的波长(700 - 1000 nm),不过当然同时也就牺牲了一定的显色性。 本文将会展示如何在树莓派上

2017-08-14 20:02:35 1167

原创 赫夫曼树(哈夫曼树)

赫夫曼树—》赫夫曼编码 在数据膨胀、信息爆炸的今天,数据压缩的意义不言而喻。 一个字节8位 赫夫曼编码压缩—无损压缩 可以看成成绩的排布。成绩是70-90之间占有70%,所以以下两个数据结构优化性是不一样的。下面第二个图的结构明显好于第一个图的。 WPL的值越小,说明构造出来的二叉树性能越优。最优的树就是赫夫曼树 例如这个图:WPL = 5*1+15*2+70*3+10*3 =

2017-08-14 17:30:54 616

原创 树、森林与二叉树的转换

我们惊人的发现:树、森林的前跟遍历和二叉树的前序遍历结果相同;树、森林的后跟遍历和二叉树的中序遍历结果相同! 参考资料:http://www.cnblogs.com/xxiaoye/p/3642533.html

2017-08-14 17:08:22 358

原创 线索二叉树代码

C语言 注:方便复习#include <stdio.h>#include <stdlib.h>//山东科技大学 小昝#define ERROR 0#define OK 1typedef enum{Link, Thread} PointerTag; //link = 0表示指向左右孩子指针

2017-08-14 16:40:45 898

原创 C语言*p、p以及&p的区别

前言: 先要理解地址和数据,你可以想象有很多盒子,每个盒子有对应的号码,那个号码叫做“地址”,而盒子里放的东西叫做“数据”。 上面就段理解了,*p和p的区别就不难解释了。 p是指针变量,用来存放地址,你可以认为是上面所说的盒子的号码,“*”是解引用操作符,你可以把它理解成打开盒子,*p就是打开p号盒子,取出里面的数据。 简单来说,你记住,p存放的是地址,而*p是让程序去那个地址取出数据。总结

2017-08-14 14:49:30 18779 5

原创 树莓派GPIO入门之控制LED灯

对象读者 我假设你的树莓派已经连上你家里的路由(有线无线都行)。并且你已经可以在另外一台设备(台式机,笔记本,手机,平板电脑都可以) 上通过SSH软件登陆到你的树莓派了。当然你也可以直接在树莓派上通过HDMI连接显示器,通过USB键盘鼠标直接进行操作。不管怎样,你可以启动树莓派并进入树莓派的linux命令行界面。 最终效果 控制你的LED发光管按一定时间间隔闪烁 硬件树

2017-08-13 15:21:09 10810 1

原创 二叉树的建立和遍历程序代码(Java,C)

C语言 考虑到c语言的scanf(“%c”,&c)是输入后一个字符一个字符的取出这一特性,我们选择用createBiTree()方法接受输入的参数,然后直接建立。运用递归的方式创建二叉树的数据结构,结束条件为 c==’ ‘; 代码如下:#include <stdio.h>#include <stdlib.h>/*山东科技大学小昝*/typedef struct BiTNode{ c

2017-08-13 14:58:30 1301

原创 二叉树的遍历

二叉树的遍历: 是指从根节点出发,按照某种次序一次访问二叉树中的所有节点,使得每个结果被访问一次且仅被访问一次 分为四种: 根据根节点的位置分为四种: 前序遍历、中序遍历、后序遍历、层序遍历 -前序遍历: -中续遍历: -后序遍历: -层序遍历: 二叉树的建立和遍历算法 内存是线性的,我们很好写出前中后遍历结果,但是计算机应该怎么处理呢?

2017-08-13 14:46:00 296

原创 二叉树的数据结构定义

//二叉树的数据结构定义typedef struct BiTNode{ int data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;

2017-08-13 11:10:50 3096

原创 二叉树

世上树有万千种,唯有二叉纸上谈。二进制:B 十进制:D 十六进制:H 神使用递归,人使用迭代(迭代的效率更高) 说了这么多,谈一下二叉树的定义。二叉树的定义在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树的性质二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k

2017-08-12 21:59:43 382

原创

树的存储结构怎么表示呢?我们来思考一下。 我们之前学过线性表(一对一的关系)。那么我们如何通过顺序表或者链表来表示我们的树呢? 第一步: 树可分为双亲(Parent),孩子(child),兄弟(brother) 第二步 双亲表示法:时间复杂度:O(1) 孩子表示法: 方案一: 缺点:太费空间 方案二: 缺点:花费巨大的时间维护表 方案三: 数组和链表的结合 缺点

2017-08-12 21:27:57 294

原创 KMP算法

KMP算法又称“看毛片”算法,是大学生必备的算法之一。也是考研重点,同样也是当代大学生的盲点所在。细细品味大学生活的点点滴滴,会有成功的一天。 C语言#include<stdio.h>#include<string.h>void makeNext(const char P[],int next[]){ //P为模式串 //i为后缀 //j为前缀 int i,j

2017-08-11 21:27:41 2279

原创 BF法-字符模式匹配

主要代码:int BFMatch(char *s, char *p){ int m, n; m = strlen(s); n = strlen(p); for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { if(s[i + j] != p[j])

2017-08-10 20:20:36 528

原创 知识汇总

此内容为个人总结使用,如有错误问题,可留言,我会及时回复。

2017-08-10 19:22:55 283

原创 汉诺塔问题---小昝

C语言#include <stdio.h>void move(char A,char C){ printf("%c ---> %c\n",A,C);}void Hannooi(int c,char A,char B,char C){ if(c==1){ move(A,C); }else{ Hannooi(c-1,A,C,B);

2017-08-10 17:20:04 327

原创 递归解决八皇后问题-小昝

引言 由于大学课堂中数据结构中并没有讲一些常见的算法,只是讲的比较简单的定义。所以拿出来暑假时间去研究经典的算法。本文章是研究的八皇后问题。八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。 思路 之前听到过很多次“八皇后问题”,但是都没有

2017-08-10 16:41:46 455

原创 C语言初步学习(适合与学习过C++和java的童鞋)

因为本人对Java比较熟悉,因为算法大部分都是c写的,所以研究了c语言。

2017-08-08 16:10:24 523

原创 时间复杂度

让编程改变世界Change the world by program---小昝当我们参加比赛,例如蓝桥杯、ACM…时,往往一个题目都会有内存限制,而且学好算法必须要明白算法的复杂程度,同时时间复杂度也是上研究生的一个必备知识点,所以我们有必要去研究一下算法的时间复杂度(时间复杂度、空间复杂度)

2017-08-08 13:07:29 819

原创 轻松理解汉诺塔问题(图解java描述)

本文章适用于考研初复试、保研面试。本人出于对计算机爱好,但是感觉之前掌握算法不扎实,现在重头开始总结算法的相关知识,也是为了读更好学校研究生。多多支教。

2017-08-08 11:09:33 12878 7

转载 树莓派发行版apt-get彻底卸载软件包

本人山东科技大学计算机科学与技术专业一枚学渣。总结了很长时间apt-get其中的卸载区别与作用。 apt-get的卸载相关的命令有remove/purge/autoremove/clean/autoclean等。具体来说:apt-get purge / apt-get –purge remove 删除已安装包(不保留配置文件)。 如软件包a,依赖软件包b,则执行该命令会删除a,而且不保留配

2017-08-07 17:57:00 5780 1

原创 RasberryPi快速启动(适合首次接触树莓派学习者)

你需要做以下的准备来启动你的Raspberry Pi : 连接线图例: 制作Raspberry Pi的SD卡SD卡将包含Raspberry Pi的操作系统(操作系统是一种使Raspberry Pi工作的软件,就像PC里的 Windows和Mac里的OSX)。这个操作系统与大部分电脑的系统有很大的不同。所以很多人觉 得这是使用Raspberry Pi最棘手的部分。其实它是很简单的–只是与

2017-08-07 17:38:51 2924

空空如也

空空如也

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

TA关注的人

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