自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MYSQL索引

索引是帮助Mysql高效获取数据的排好序的数据结构索引的数据结构1.二叉树2.红黑树3.Hash表4.B-Tree B+-Tree二叉树的结构:上图表示排序二叉树的每个节点都是索引(主键)每个结点的左子树都比这个结点小,每个结点的右子树都比这个结点大,他们都指向存储数据的地址,如果有特殊情况比如索引是1,2,3,4,5.那就会变成斜着的链表,就会影响查找的效率,...

2019-08-11 16:30:45 137

原创 进程调度

进程调度的任务、机制和方式1.进程调度的任务1)保存处理机的现场信息(程序计数器、多个通用寄存器的内容)2)按某种算法选取进程3)把处理器分配给进程2.进程调度的机制为了实现进程调度应该具有三个部分1)排队器。将系统中的所有就绪进程按照一定的策略排成一个或者多个对列。每当有一个进程转换成就绪进程时就将其插入到就绪队列中。2)分派器。根据进程调度程序选定的进程,将其从...

2019-07-25 19:00:10 848

原创 倒序打印链表

采用递归的方式打印链表:当我们将后面的处理完再打印利用递归的方法我们一定要确定其出口即什么时候进行返回void ResverPrintList(pNode pHead){ if (NULL == pHead) return; if (pHead->_pNext) ResverPrintList(pHead->_pNext);...

2019-04-09 13:13:09 283

原创 在原链表上将连表进行倒置

A->B->C->D->E利用三个指针进行操作首先p1指向A的前面 p2指向A p3指向Bp2->next指向p1 p3->next指向 p2;然后将 p1、p2 、p3全部将后移一位代码实现:void reverse(Node *&head){ if (head == NULL || head->ne...

2019-04-09 13:12:53 114

原创 判断两个普通单向链表是否有交点(如何快速找到这个交点)

如果两个链表有交点那么代表这两个链表是一个Y型的链表Y型的链表代表这两的链表的尾地址是相同的如何能快速的的找到这个交点的位置呢?首先我们可以确定的是两个普通单向链表的长度 当这两个普通单向链表存在交点时那么代表交点向后的结点都重合那么我们就可以通过长度的差值来确定交点的位置若两个链表的长度差值为K那么我们 先定义两个指针让他们分别指向两个链表的头结点先让长的链表的指针先走K步,...

2019-04-09 13:12:35 980

原创 判断单向链表是否有环

若单向链表存在环那么链表的形态为有环的链表简单的遍历走不到尾那么我们怎么判断有环呢?环就像是操场的的跑到 那么运动天赋一向不太好的 我很容易就能想到跑步时容易让人扣圈同理 我们可以定义两个指针让他们同时指向链表的头 一个指针一次走两步 一个指针一次走一步 那么如果链表有环那么他们一定会在环内的某一点相遇 假如这一点就为环内标号为K的点,这时我们让一个指针不动,一个指针继续向后走 一...

2019-04-09 13:12:12 142

原创 shell基本语法及应用

什么是Shell:一个做为用户与Linux系统之间的操作接口程序,允许用户向操作系统输入需要执行的命令;一种高级、解释性程序设计语言Shell的种类Bourne shell(sh)C shell(csh)Korn shell(ksh)Bourne Again shell(bash)首先看一个简单的shell程序 #!/bin/ba...

2019-04-09 13:11:16 235

原创 排序代码总结

冒泡排序:#include<stdio.h>void BubbleSort(int arr[],int nLength){    if(arr == NULL || nLength <= 0)return;    int i;    int j;    int nFlag = 0;    int nCount = 0;    for(i = 0;i<...

2019-02-21 17:52:14 98

原创 部分排序的思想与适用场合

冒泡排序:思想:相邻两个元素要进行比较若前比后大要交换 优化:快排是冒泡排序的优化冒泡排序的优化:1.若给定的数组全部都是排好序的那么此数组就一定不会进入交换定义一个标记即可                2.若给定的数组一部分是有序的我们可以标记最大有序位置即进入交换的位置然后改变循环的次数即可 选择排序:简单选择排序 堆排序简单选择排序(select)思想:找最大的往后放,或者是...

2019-02-16 12:55:53 184

原创 数据库学习笔记

数据库笔记(MYSQL)打开数据库use testshow databases;显示数据库中的表show tables;删除表;drop database +表名;创建一个库create database +库名创建一个表create table +表名(id int auto_increment not null,//自增型   必须设成int型username v...

2019-02-16 12:51:39 302

原创 常见概念整理

 并行和并发并行是指两个或者多个事件在同一时刻发生;并发是指两个或多个事件在同一时间间隔内发生;线程的基本知识线程的定义:线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位线程的状态:1.新建 2.就绪 3.运行 4.阻塞 5.死亡(1) 就绪状态:进程已获得除处理机外的所需资源,等待执行。...

2019-02-16 12:46:30 181

原创 二叉树的深度遍历以及广度遍历

1.二叉树的广度遍历(层序便利)遍历后的结果为 A B D G F C Z E层序遍历的实现:申请一个队列 先将根入队列将根弹出A将根的左右孩子入队将B弹出 将B的左右孩子入栈A  B重复以上操作直到队列为空实现代码:#include<stdio.h>#include<stdlib.h>typedef st...

2018-11-23 17:49:34 1462

原创 创建二叉树遍历二叉树

一、创建一个固定的树#include<stdio.h>#include<stdlib.h>typedef struct node{    int nValue;    struct node *pLeft;    struct node *pRight;}BinaryTree;BinaryTree *CreateBinaryTree(){  ...

2018-11-18 11:30:18 179

原创 树的基础知识

上图显示了一个普通树的结构 其中C、D为中间结点 B、E、F、G为叶子结点 当前结点有几个孩子她的度就是几整个树的度就是最大的那个度二叉树:当前结点最多有两个孩子如下图满二叉树是每一个结点都有两个孩子完全二叉树:最后一层有空缺并且其空缺是从右到左排序二叉树(二叉搜索树)BST 不允许出现值相同的结点规则:每一个结点的左子树的值都比结点的值小每一个结点的右子树的值都比...

2018-11-15 17:24:15 154

转载 队列和栈的转换

1. 两个栈实现队列//前提已知:struct Stack{ int top;   //栈顶指针 int stacksize;//栈的大小 int *s;   //栈底指针};void InitStack(Stack *s);void Push(Stack *s, int k);int Pop(*s);int IsStackEmpty(*s);...

2018-11-10 14:50:21 207

原创 栈的基础

栈:后进先出  有栈顶元素无栈低元素  要么头添加头删除要么尾添加尾删除栈的实际应用:1.括号匹配问题 2.递归括号匹配:题目描述:    在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹...

2018-11-10 14:31:42 117

原创 位运算的巧妙用法

例1:在一个数组中若一个数只出现了一次其它的数都出现的了两次那么如何才能快速的找到这个数  方法:从前向后两个数依次进行异或最后的结果就是要找的那个数若数组中的数字依次为 :5,6,4,2,2,5,6 首先将 5,6进行异或  结果 011  011和4进行异或 111 111和2进行异或 101 101和2进行异或111 111和5进行异或010 010 和6进行异或是100 结果为...

2018-10-04 10:39:19 356 1

原创 C语言常见陷阱错误及知识点

“#”预处理机制(独立于编译期)遇到<>查找系统 遇到“”先查找自己的没有查找库的主函数 int main(int argc, char*argv[])  第二个参数代表要传的字符串 例如 ./app aa bb 就可以将aa bb传进去 现在的第一个参数是 3 (这个参数会将操作命令也算入)基本的数据类型I.整数   char   一个字节   -128~127   sh...

2018-10-02 15:46:51 411

原创 I/O模型(异步事件)

异步事件   WSAEventSelect模型是WindowsSockets提供的另外一个有用的异步I/O模型。该模型允许一个或多个套接字上接收以事件为基础的网络事件通知。Windows Sockets应用程序在创建套接字后,调用WSAEventSlect()函数,将一个事件对象与网络事件集合关联在一起。当网络事件发生时,应用程序以事件的形式接收网络事件通知。和 WSAAsyncSelect ...

2018-08-17 13:54:55 1757

原创 I/O模型(异步选择)

异步选择异步选择(WSAAsyncSelect)模型是一个有用的异步 I/O 模型。利用这个模型,应用程序可在一个套接字上,接收以 Windows 消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数。WSAAsyncSelect模型是Select模型的异步版本,在调用select()函数时,会发生阻塞现象。可以通过select()函数timeou...

2018-08-16 15:29:03 557

原创 I/0模型(select模型)

select 模型1)引入为什么要引入select模型呢  同步阻塞问题我们可以利用多线程 或者把socket改成非阻塞 当我们要接受数据的时候我们要来回查看接受缓冲区有没有数据这样我们就要来回切换用户和内核浪费时间降低效率 所以我们让一个把所有的socket的有无数据都看了呢 这样我没就要引入selectselect 模型是Winsock中最常见的I/0模型,核心是利用selec...

2018-08-16 15:11:17 4463

原创 类之间的关系

如何创建类图  打开VS 点击新建项目  点击建模项目  然后右键项目选择 添加新建  选择UML类图   然后在右侧 工具栏中选择要添加的内容类之间的关系1.关联关系    I.单向关联    II.双向关联    III.自身关联多维关联(N-ary Association)2、泛化(Generalization)3、依赖(Dependency)4、聚合(Aggregation)5、组合(Co...

2018-06-10 14:51:56 462

原创 类(2)

类的种类  局部对象:栈区 class Cperson{   public:string name;  private:int age;  protected:bool sex;   public: Cperson()//没有参数的构造函数{   name="leilei";   age=0;  sex=1;}Cperson(string name1,int age1,bool sex1)//有参...

2018-05-26 21:54:47 137

原创 c++学习记录之类

c++是面向对象的编程语言    面对对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。  类的声明   class+类名{   访问修饰符:(public/private/protected)...

2018-05-26 21:05:11 115

原创 C++标准

标准的输入输出  #include<iostream> using namespace std;//打开命名空间 标准c++的组件都在std的标准库中   输入 cin>>变量名    输出 cout<<变量名 <<endl //endl输出换行并清除缓存 作用域  #include<iosteam> using namesapce st...

2018-05-20 16:08:01 270

原创 文件

文件缓冲区文件缓冲区是用以暂时存放读写期间的文件数据而在内存区预留的一定空间。使用文件缓冲区可减少读取硬盘的次数。getchar()函数进行字符的输入,并不是直接从键盘这个硬件中读取输入的字符,而是从“输入缓冲区”中得到的字符。件的特点:数据可以长久保存文件的存在形式 1)字符形式(ASCII)例如 文本形式 2)二进制形式 例如 照片 word定义文件指针 打开文件文件指针 FILE*pFile...

2018-05-06 16:36:53 287

原创 字符串习题

1. 程序运行结果: ________5,4_____________________char str[ ] = “abcd”; printf(“%d %d”,sizeof(str),strlen(str));sizeof()算的字节数是整个字符串的字节包含\0 而strlen是字符串的长度不包括\0 2. 程序运行结果: _________10,2____________________ cha...

2018-05-02 22:30:14 560

原创 学习C语言记录

位运算正数:原码,反码,补码都一样。即为原数字的二进制在前面加一个为零的符号位。负数:1)原码:符号位唯一 2)反码:除符号位 其他位按照原码取反 3)补码:反码加一内存中存的是补码。char 类型为一个字节即八位 1000 0000表示负数的最小值因为内存中存的是补码所以为负数的最小值-128&代表与运算   都是1为1,其他为0;|  代表或运算   有1为1;~代表取反 1变0,0变...

2018-04-14 17:31:39 319 2

原创 数组笔试题

有如下语句 int a[10] = {1,2,3,4,5,6,7,8,9,10};int *p = a;则数值为9的表达式是___b___*p+9                       b)       *(p+8)                    c)       *p+=9                    d)       p+7 解      定义了指针p指向数组a的首元素...

2018-04-01 13:35:12 547

原创 c 语言流程结构

选择结构1. 二选一 结构: if(   ) //括号内为判断语句           {   //为满足if条件时需要执行的语句            }            else         {   //为不满足if条件时需要执行的语句         }2.多选一结构:switch( )//括号内为整形变量或枚举类型{  case 1:     break;   case 2:  ...

2018-03-31 15:59:29 127

原创 C语言入门

技术机软件是如何工作的CPU:用于数学计算内存:暂时存储外存:持久存数制二进制0,1逢2进1十进制转二进制方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除二进制转十进制方法为:把二进制数按权展开、相加即得十进制数。八进制0,1,2,3,4,5,6,7逢8进1二进制转八进制方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转...

2018-03-31 15:13:25 219

空空如也

空空如也

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

TA关注的人

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