自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

乞木的博客

HelloWorld

  • 博客(31)
  • 收藏
  • 关注

转载 算法时间复杂度求解法

转载自:https://www.cnblogs.com/fanchangfa/p/3868696.html  算法的时间复杂度,是刚开始接触算法和数据结构时的概念,在真正使用的时候有时候常常忘记它的推导公式。最近准备校招,把二叉树、排序、查找等这些经典的算法复习了一遍,这次把这些都整理成博客以便以后查看,复习计划接近尾声,这两天老是不在状态,学习图的时候有点晕乎乎,今天反过头来把时间复杂度的求解...

2018-10-17 11:10:23 343

原创 【C/C++】【Linux】Linux系统调用——线程控制

Linux系统调用——线程控制什么叫线程?线程是CPU调度和分派的基本单位。是比进程更小的能独立运行的基本单位。除了一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),线程基本上不拥有系统资源,但可与同属一个进程的其他线程共享进程所拥有的全部资源。 线程与进程的区别?线程的优缺点?(1)进程是系统资源分配的最小单位,线程是CPU调度和分派的基本单位。(2)进程拥有独...

2018-08-22 17:30:13 579

原创 【C/C++】【Linux】Linux系统调用——进程间通信

Linux系统调用——进程间通信进程间通信概述进程间通信(InterProcess Communication,IPC)是指在不同进程之间传播或交换信息。Linux的进程间通信方法有管道(Pipe)和有名管道(FIFO)、信号(Signal)、消息队列(Message Queue)、共享内存(Shared Memory)、信号量(Semaphore)、套接字(Socket)等。Li...

2018-08-19 11:14:52 7487 2

原创 【C/C++】【Linux】Linux系统调用——进程控制

Linux系统调用——进程控制 什么是进程?        进程是资源分配的最小单元,是一个具有一定独立功能的程序的一次运行活动。每个进程都是一个独立的运行单元。 进程与程序的区别?(1)程序是放到磁盘的可执行文件,进程是指程序执行的实例。(2)进程是动态的,程序是静态的。程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和...

2018-08-16 15:41:32 1478 3

原创 【C/C++】【Linux】Linux系统调用——文件访问

Linux系统调用——文件访问 函数用法 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int creat(const char *filename, mode_t mode) 函数功能 创建文件 fil...

2018-08-15 21:18:31 1427 1

转载 【C/C++】【Linux】Linux系统调用列表

转载自:https://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.htmlLinux系统调用列表 以下是Linux系统调用的一个列表,包...

2018-08-15 20:29:56 1163

转载 【C/C++】【数据结构】八大排序

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。算法一:插入排序 插入排序示意图插入排序是一种最简单直观的排序算法,它的工作原理是通过...

2018-08-13 19:21:47 2529 1

原创 【C/C++】【数据结构】二叉树的基本操作

二叉树的基本操作 按前辈们的说法,在嵌入式的开发中并不用得到二叉树。在次就仅仅对二叉树的基本操作作简单介绍。二叉树性质 (1)第 i 层最多有 2^(i-1) 个节点。(2)深度为 k 的二叉树至多有 2^k - 1 个节点。(3)若一个二叉树终端节点个数为 n,度为 2 的节点个数为 m,则有 n = m+1。(4)有 n 个节点的完全二叉树深度为 log2(n) + 1...

2018-08-11 21:43:02 1291 1

原创 【C/C++】【数据结构】单链队列操作

单链队列操作单链队列和单链表很相似。除了单链表具有的一些特性,单链队列还有两个分别指向队头和队尾的指针,就像是多了一种访问手段的单链表。(个人认为)利用单链队列进行操作前,除了要声明链表节点信息的结构体,成员为数据域和指针域,还要要声明一个代表队列信息的结构体,成员为队头指针和队尾指针。为了操作方便,也给单链队列添加了一个头结点。空的单链队列的判决条件为队头指针和队尾指针均指向头结点。...

2018-08-10 20:13:18 803

原创 【C/C++】【数据结构】链式栈操作

目录链式栈操作头文件定义链式栈初始化链式栈判空链式栈入栈操作链式栈获取栈顶数据链式栈出栈操作链式栈重置链式栈销毁链式栈操作头文件定义#ifndef _LINKSTACK_H_#define _LINKSTACK_H_#include<stdlib.h>#define SUCCESS 10000#define FAILURE...

2018-08-08 19:02:47 340

原创 【C/C++】【数据结构】双向链表操作

目录双向链表操作头文件定义双向链表的初始化双向链表的插入 双线链表求链表长度双向链表的判空双向链表的遍历 双向链表的查找(通过位置求值)双向链表的检索(通过值求位置)双向链表的删除 双向链表的重置双向链表的销毁测试文件双向链表操作像双向链表的求长,判空,遍历,查找,检索,之类的操作都和单链表一样的。不过我还是在了文中。头文件定义...

2018-08-07 20:48:38 1076

原创 【C/C++】【数据结构】通讯录——链表实现

 实现功能有:1.新建,添加联系人,理论上没有上限2.查看当前通讯录内所有联系人3.以名字为索引查找联系人4.以名字为索引修改联系人5.以名字为索引删除联系人6.按名字ASCII码值从小到大排序7.按下按键esc退出8.十分贴心地把字体调成了红色。  头文件 linkbook.h#ifndef _LINKBOOK_H#define _LINK...

2018-08-05 22:37:57 1894

原创 【C/C++】【数据结构】单链表操作

目录头文件定义单链表初始化单链表插入头插法尾插法中间插入单链表求链表长度单链表判空单链表遍历 单链表查找(通过位置求值)单链表检索(通过值求第一次出现的位置)单链表删除单链表重置 单链表销毁 反转单链表 测试文件头文件定义#ifndef _LINKLIST_H_#define _LINKLIST_H_#include ...

2018-08-04 20:51:58 532

原创 【C/C++】【数据结构】直接插入排序

插入排序是把一个记录插入到有序序列中,仍使该序列有序,并且长度增加1。插入排序中最简单的排序方法是直接插入排序。头文件及其他函数代码见https://blog.csdn.net/qq_42379345/article/details/81366150直接插入排序函数int ListInsertSort(SqList *list, ElemType elem, int (*p)(E...

2018-08-03 20:30:44 375

原创 【C/C++】【数据结构】顺序表

顺序表也是线性表,具有线性结构。线性结构分为两种,一是顺序存储,在内存中是连续的;二是链式存储,在内存中是不连续的。 顺序表的特点:(1) 除第一个元素外,其他所有元素都只有一个直接前驱。(2) 除最后一个元素外,其他所有元素都只有一个直接后继。 顺序表有容量和长度两个属性。长度指的是,顺序表中有效元素的个数。容量指的是顺序表中最大的可能长度。若顺序表中的有效元素为0,...

2018-08-02 20:38:45 393 1

转载 Linux下清空缓冲区的方法

转载自:http://m.blog.csdn.net/blog/yanbober/8720542    C标准规定fflush()函数是用来刷新输出(stdout)缓存的。对于输入(stdin),它是没有定义的。但是有些编译器也定义了fflush( stdin )的实现,比如微软的VC。其它编译器是否也定义了fflush( stdin )的实现应当查找它的手册。    GCC编译器没有定义...

2018-08-01 20:41:58 2447

原创 链表和内存管理

链表链表由一个个节点组成。链表中的每一个节点的数据类型为结构体类型,节点有两个成员:数据域和指针域。数据域存放数据成员,指针域指向下一个节点地址。链表按此结构对各节点的访问需从链表的头找起,后续节点的地址由当前节点给出。单链表有一个头节点head,指向链表在内存的首地址。无论在表中访问那一个节点,都需要从链表的头开始,顺序向后查找。链表的尾节点由于无后续节点,其指针域为空,写作为NULL。...

2018-07-31 21:05:41 2375 1

原创 通讯录——结构体指针数组实现

 实现功能有:1.新建,添加联系人,在达到上限时输出book full!(存储上限可以通过改变宏定义里MAXSIZE的值来实现,为了测试方便,目前的 MAXSIZE = 3)2.查看当前通讯录内所有联系人3.以名字为索引查找联系人4.以名字为索引修改联系人5.以名字为索引删除联系人6.按名字ASCII码值从小到大排序7.按下按键esc退出8.十分贴心地把字体调成了红...

2018-07-30 22:30:57 300 3

原创 结构体和联合体

结构体结构体是一些值的集合,这些值成为它的成员。这和数组有些类似。结构体和数组最大的不同是,数组的元素都是相同类型的,而结构体里的成员可以具有不同的类型。数组元素可以通过下标来访问,而结构体成员长度可能不同,所以不能通过下标访问。每个结构体成员都有自己的名字,所以结构体成员是通过名字访问的。结构体变量属于标量,所以可以向对其他标量一样对结构体变量进行操作。 1. 结构体...

2018-07-29 21:17:09 242

原创 【C/C++】进制转换

1.十进制转二-九进制void DecToNum(int dec, int hex) //dec 代表十进制数,hex代表要转成什么进制{ if(dec) { DecToAny(x / hex, hex); printf("%d", x % hex); }}3.二-九进制转十进制void NumToDec(int num,...

2018-07-28 20:53:38 483

原创 指针与数组,与函数,与指针

指针数组指针数组就是一个数组,这个数组里面的元素是指针。一般形式为: 类型标识符 * 数组名[数组长度]比如int *array[10];上例中,[ ] 优先级高,与左边的array合并成为数组,array是数组名,int *说明这个数组是一个整型指针数组,这个数组里面的所有元素都是指向整型的指针。 数组指针数组指针又称行指针,是一个指针,这个指针指向一个数组的首...

2018-07-27 21:16:07 118

原创 C语言#define的用法整理

#define简单定义#define指令被称为宏定义,在C程序编译的第一个步骤预处理阶段被编译,其作用就是替换任意文本。它的最简单的用法,用来定义数值宏常量#define PI 3.14在这条指令之后出现的任何字符 PI 都会被预处理器替换为 3.14。比如说下面这条指令C = 2 * PI * 10;编译器在处理这条代码之前,会先把 PI 替换成 3.14 然后在...

2018-07-26 21:13:09 23739 4

原创 static,print,指针

static 有三个作用(1) 修饰全局变量。改变变量的作用域,只能在当前文件被调用,其他文件不能调用。(2) 修饰函数。 改变函数的作用域,只能在当前文件被调用,其他文件不能调用。(3) 修饰局部变量,改变变量的生命周期,直到程序结束才能释放。改变变量的生命周期,直到程序结束才能被释放(释放的是栈空间)。被static修饰的局部变量,存放在数据段(静态数据区)。  关于p...

2018-07-25 20:52:40 296

原创 字符与字符串,整数算法训练

1.实现在字符数组中指定位置插入字符2.实现在字符数组中指定开始位置插入字符串#include<stdio.h>#include<string.h>int main(){ char str[20] = "hello"; printf("str = %s\n", str); /* insert a character at the specified...

2018-07-24 20:39:42 167

原创 杨辉三角形

在屏幕上显示杨辉三角形:问题分析与算法设计:        杨辉三角形中的数,正是(x+y)的N次方幂展开式中各项的系数。        从杨辉三角形的特点出发,可以总结出:              (1) 第N行有N+1个值(设起始行为第0行);              (2) 对于第N行的第J个值:(N>=2)                    当 J...

2018-07-24 20:24:15 261

原创 C语言之数组、字符串、函数

数组的基本定义:数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 一维数组数组在内存中是连续的下面是 int a[5] 的内存示意图.一维数组的创建与初始化int array[5];注: 数组的操作符为 [ ] 而非 ( ) 或 { } , 在创建数组时, 如果没有对数组初始化, 则 [ ] 内必须要有一个常量。注:数组的第一个元素的下标为0;...

2018-07-23 20:21:33 267

原创 C语言数据类型与运算符

上午学习了c语言的数据类型、变量、常量等,下午学习了运算符以及结构语句if switch for while;不同的机子的数据类型所占字节略有区别,32位Linux系统下 int 4Byte,short 2Byte,long 4Byte,float 4Byte,double 8Byte,char 1 Byte数据类型还分为 ,有符号和无符号对不同数据类型的混合运算,最后结果的数...

2018-07-21 20:40:38 604

原创 Linux下gdb调试工具及shell脚本的几种语句结构

上午在找些c语言的题目做,水平不够浪费了许多时间。下午上学习了,gdb调试工具和shell使用基础。使用gdb前必须在编译是加入-g选项,例:gcc hello.c -o hello -g然后输入指令  gdb hello [命令行参数1] ... [命令行参数n]一些gdb的常用指令如下:(gdb)list             l    列出源码(只显示10行)   ...

2018-07-20 20:01:07 789

原创 编辑器vim与编译器gcc

学习内容:编辑器vim,编译器gcc,makefile的编写方式。得益于班级群里同学的分享,我完整地了解了Linux的几个通配符“*”,“?”,“[]”,“^”,“{}” 的用法,纠正了自己昨天做的一个题目的答案,这个题目是这样的,“删除所有符合d开头、t结尾、且中间包含一个字母的文件。”,我写的答案是“find / -name “d[a-z]t” -delete”,实际上应该是“find /...

2018-07-19 20:07:05 389

原创 随机分组C程序

随机分组程序#include<stdio.h>#include<string.h>#include<time.h>#include<stdlib.h>int main(){ char *name[]={"曾从威","蒋恺均","刘江涛","崔雅倩","祝秋培","吴

2018-07-18 21:01:54 1737

原创 Linux初步学习

今天的学习内容是,嵌入式基本概念,并对嵌入式工作走向作了了解学习了一些常用的Linux终端命令,弄清楚Linux里根目录下的文件的介绍及作用   ...

2018-07-17 20:27:25 134

空空如也

空空如也

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

TA关注的人

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