剑指offer——根据先序,中序重建二叉树C/C++(以及二叉树的三种递归和非递归遍历实现) 题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。#以下完整代码,读者可将其直接复制到IDE里运行查看,效果更佳。此处不多bibi。/* 根据先序序列和中序序列创建二叉树。 */ #include ...
momenta嵌入式实习生面试经历 前言:牛客网投递简历,第二天十二点hr电话就打过来了。约个电话面试,时间为第三天(六月十二)的五点半。一面:这次面试时间五点半,五点半,五点半。说好的五点半,我找了个空教室从五点等到六点半,六点半,六点半啊。我都以为是被骗了的准备去吃饭的时候,这时一个来自山东青岛的电话打过来了。接通后一直道歉,我。。。唉。。谁让我菜呢。在之前有面试过腾讯,阿里的经验(虽然都失败了,但经验还是有的)。这次我自...
C语言——指针练习 指针是一种保存变量地址的变量。在C语言中,指针的使用非常广泛,原因之一是,指针常常是表达某个计算的唯一途径,另一个原因是同其他方法比较起来,使用指针通常可以生成更高、更紧凑的代码。练习宏定义与测试指针 单目运算符 符合从右!!到左的顺序执行#include "stdio.h"#define MIN(A,B) A>B? B:A //宏定义求最小值int main(){...
C语言——指针练习 指针是一种保存变量地址的变量。在C语言中,指针的使用非常广泛,原因之一是,指针常常是表达某个计算的唯一途径,另一个原因是同其他方法比较起来,使用指针通常可以生成更高、更紧凑的代码。练习宏定义与测试指针 单目运算符 符合从右!!到左的顺序执行#include "stdio.h"#define MIN(A,B) A>B? B:A //宏定义求最小值int main(){...
stm32启动代码详细分析记录 stm32启动代码详细分析记录启动的代码中用到的汇编指令解析1 先在RAM中分配系统使用的栈,RAM的起始地址为0x2000_00002 然后在RAM中分配变量使用的堆3 然后在CODE区(flash)分配中断向量表,flash的起始地址为0x0800_0000,该中断向量表就从这个起始地址开始分配4 分配完成后,再定义和实现相应的中断函数,5 所有的中断函数全部带有[weak]特性,...
通过LWIP 的RAW API 进行与服务器的UDP通信(stm32 f103 -- enc28j60) LWIP的RAW API UDP通信详解(stm32f103—enc28j60)实现任务通过接收到上位机端发送来的数据来实现控制开发板做相应的操作。代码实现首先看看几个主要的结构体//发送数据包struct sardata{ u8 head[4]; //标志头 u16 length; //长度 u8 humi[2]; //温湿度传感器状态 u8 data[4];...
LWIP的RAW API UDP通信详解(stm32f103---enc28j60) 目录LWIPLWIP简介LWIP主要特性ENC28J60ENC28J60简介ENC28J60特点无操作系统LWIP移植在说移植之前,先说下几个重要的函数功能和数据结构enc28j60.c文件主要结构体*netif*结构体定义(netif.h)只列出了比较重要的字段l...
程序的装入与链接(动、静态重定位) 用户程序要在系统中运行,必须要把它装入内存,然后再将其转变成一个可执行程序。用户程序变为可执行程序都需要执行以下步骤: 编译:由编译程序进行编译,形成若干个目标模块。 (编译程序执行) 链接:由链接程序将编译好的若干个目标模块以及它们所需要的若干个库函数链接在一起。形成转入模块 ...
LeetCode存在重复 的五种解法 存在重复给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true//暴力搜索法(时间太慢,不符合题目要求)bool containsDuplicate(int* nums, int numsSize) { if(numsSi...
计算质数 六种境界(含代码实现) 计数质数 六种境界(含代码实现)以下均基于此思想//境界一 傻子作法(也就是我)int countPrimes(int n) { int i,j,sushu_flag = 1,sushu_sum = 0; for(j=2;j<n;j++) { for(i=2;i<j;i++) { if((j...
基于STM32f103简单自平衡小车项目总结 一. 项目基本信息项目名称:基于STM32f103简单自平衡小车项目完成时间:2018.9.20——2018.10.20项目类别:自动控制类项目总体概述: 这个项目是我在入门嵌入式做的第一个项目,是在看完原子哥的视频后,为了巩固和连接起来这些知识点做的,做的不是很好。此次项目主要涉及到嵌入式方面的的基础知识,如PWM输出,IIC通信时序,uart串口通信,定时...
汇编语言程序设计大赛赛后总结 转自我们组队长,我是组内SA(系统分析师) 为期将近一月(11-05公布题目,12-02晚截止提交)的校汇编比赛总算告一段落了,接下来潜心学习嵌入式Linux准备来年找工作。因为本人比较喜欢汇编(目前只学过8086),在上微机原理课的同时,在自学王爽老师的《汇编语言》(第三版),不得不说,这是国人写的很优秀的一本计算机科学系图书,但略有遗憾,我并没有完全学完学懂学会(太贪容易,太浮浅粗疏,太不...
Mysql存储过程 Mysql存储过程一. 过程化sql 过程块sql主要有两种类型,几命名块和匿名块。匿名块每次执行时都要编译,而且不能存储到存储过程中,也不能在其他过程化sql块中调用,过程和函数时命名块,他们在编译时保存在数据库中,成为持久型存储模块(Persistent Stored Module,PSM),可以被反复调用,运行速度较快。二. 基本语法1. 创建存储过程cre...
存储过程分号处理办法 存储过程分号处理办法问题描述: mysql的命令行执行每一条命令是以分号结尾的,也就是说识别是否为一条命令,是根据分号决定的 然而存储过程中设计多条语句,很可能出现多个分号,所以直接把存储过程复制到命令号一般都会失败 问题分析: 出现这种问题的原因是在存储过程中要使用到分号但是,在mysql中分号代表的语句结束,这样...
C语言——volatile的用法 转自:https://www.cnblogs.com/reality-soul/p/6140192.html.volatile的本质:1> 编译器的优化在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致。当变量在...
嵌入式c语言的集中新用法 搞嵌入式的,大都用C语言写代码,一直习惯用 if 、switch打天下,在定义数据结构的时候也只用到 字符型、整型、数组,位;很少用结构体,共用体,枚举,因为咱C语言学得不好,和它们不熟,总感觉它们不那么好招呼,重要的是自已觉得没必要用上它们。 随着越来越多的积累,咱写代码的风格也在不断的发生变化,从以前的喜欢将所有的函数及数据的定义写在一个文件里到逐渐的将函数按功...
嵌入式c语言的集中新用法 搞嵌入式的,大都用C语言写代码,一直习惯用 if 、switch打天下,在定义数据结构的时候也只用到 字符型、整型、数组,位;很少用结构体,共用体,枚举,因为咱C语言学得不好,和它们不熟,总感觉它们不那么好招呼,重要的是自已觉得没必要用上它们。 随着越来越多的积累,咱写代码的风格也在不断的发生变化,从以前的喜欢将所有的函数及数据的定义写在一个文件里到逐渐的将函数按功...
Linux学习笔记 二 Linux下C语言开发工具 2.1常用编辑工具1.vim编辑器VIM编辑器基本山可分为三种模式分别是命令模式,插入模式和底行模式下面是VIM模式转换图。(1)在.vimrc文件中设置几个常用的底行命令设置缩进命令 :set smartindent //智能对齐 :set ruler //显示光标 :set lit //显示制表符...
stm32——DMA DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。下面用问答的形式表达我的思路。DMA的定义直接存储器存取(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬体子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道 CPU。在同等程度的CPU负担下,DMA是一种快速的数据传送方式。它允许不同速度...