- 博客(16)
- 收藏
- 关注
原创 BST树基本操作
文章目录BST树的概念BST树的实现BST树的插入操作BST树的删除操作BST树的查找BST树的遍历BST树的前序遍历BST树的中序遍历BST树的后序遍历BST树的层序遍历BST树的一些常见题型BST树的概念一、二叉搜索树(binary search tree)即就是我们所说的BST树二、BST树的特征:任何一个节点比它的左孩子大,比它的右孩子小,如图所示就是一颗BST树三、定义BST...
2019-06-04 16:30:07 401
原创 MySQL基础知识
MySQL是结构化查询语言的缩写(Structure Query Language),它是关系型数据库的通用语言,非常强大,可以非常高效的进行数据库的增删改查操作,SQL+索引更是可以实现带各种附加条件的高效率查询操作一、MySQL介绍MySQL目前属于Oracle甲骨文公司,大家熟悉的关系型数据库有微软的SQL Server,甲骨文的Oracle和MySQLMySQL分为企业版和社区版,...
2019-05-15 17:59:33 160
原创 工厂模式
一、前言当软件原有需求有变更或者增加新的需求时,合理的设计模式的应用,能够做到软件设计要求的“开-闭原则”,即对修改关闭,对扩展开放,使软件原有功能修改,新功能扩充非常灵活合理的设计模式的选择,会使软件设计更加模块化,积极的做到软件设计遵循的根本原则“高内聚,低耦合”下面简单介绍一下几种工厂模式。二、工厂模式工厂模式主要是为创建对象提供了接口。一般分为三类:简单工厂模式、工...
2019-04-28 15:08:41 133
原创 C++迭代器iterator
1、迭代器的概念迭代器iterator是C++STL的组件之一,作用是用来遍历容器,而且是通用的遍历容器的方式。说到C++STL组件就不得不提一下C++STL的六大组件了,它们分别是:顺序/无序容器、关联容器、容器适配器、迭代器、函数对象、泛型算法。经典的迭代器遍历容器的代码如下:Vector<int>::iterator it = vec1 .begin(); for (;...
2019-04-24 21:46:20 1322 1
原创 浅谈malloc和new的区别
1、malloc()函数 :首先它是一个动态内存分配函数;malloc一般和free()搭配,分配和释放内存;malloc开辟内存空间的时候不初始化;如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。2、new:它是一个运算符;new和delete搭配用于分配内存和释放内存,new开辟内存空间也初始化;动态创建对象时,只需指定其数据类型,而不必为该对象命名,new表达式返回指向...
2019-04-02 10:57:13 187
原创 C++STL标准模板库
STL共有6中组件:容器、容器适配器、迭代器、算法、函数对象(仿函数)和函数适配器。最常用的是顺序容器,顺序容器内的元素按其位置进行存储和访问。除顺序容器外,标准库还定义了几种关联容器。这里我们主要讲一下顺序容器。标准库定义了三种顺序容器类型:vector、list和deque,它们的差别在于访问元素的方式,以及添加或删除元素相关操作的运行代价。[vector] : 向量容器,底层数据结构是...
2019-03-26 11:10:06 95
原创 解决哈希冲突的方法
解决哈希冲突常用的两种方法就是:(1)、线性探测法(2)、链地址法如果有一组数据:11,23, 6, 2, 35, 13, 9,要把它放入哈希表中,按照除留余数法肯定会发生冲突,为了解决它,我们采用线性探测法或链地址法除留余数法就是将要放的数据除以桶的个数取余数作为哈希表的下标(1)、线性探测法:就是采用除留余数法,如果找到要放入哈希表的数据所对应的下标,如果此时下标对应的桶没有数据就将它...
2019-03-25 17:02:19 513
原创 初识C++
1、C++是一个面向对象语言,那么它有四大特征:抽象性、继承性、封装性(也就是隐藏)、多态性。2、C++里面有类,类是什么呢,它是一个抽象的类型说明首先来看看struct和class,它们都能够定义类类型,区别:成员的默认访问限定不一样,struct不加访问限定是共有的,而class默认访问限定是私有的。struct Data{}; 在C和C++里面定义折磨一个空结构体,sizeof(...
2019-03-13 19:18:52 105
原创 C语言和C++的区别
首先C++嘛,有个加加,所以C++是在C语言的基础上来的。1、C语言是一个结构化的语言,它的重点在于算法和数据结构,它是一个面向过程的语言2、C++要考虑如何构造一个对象模型,它们最大的区别就是用于解决问题思想方法不一样。对语言本身而言,C是C++的子集,那么是什么样的一个子集? C实现了C++中过程化控制及其它相关功能,而在C++中的C(我称它为“C+”),相对于原来的C还有所加强,引入了...
2019-03-13 18:41:47 598
原创 BF算法和KMP算法
字符串匹配算法:BF算法和KMP算法1、bf算法:即朴素算法:他的实现方式是这样 的,假定我们给出字符串 ”ababcabcdabcde”作为主串,然后给出子串:”abcd”,现在我们需要查找子串 是否在主串中出现,出现返回主串中的第一个匹配的下标,失败返回-1。时间复杂度:O(mn) m代表主串长度,n代表子串长度。算法实现:int BF(char *str,char *sub,i...
2019-02-21 21:41:27 4072
原创 字符串有关函数的实现
strncpy:字符串拷贝函数方法一://char My_strncpy(chardest,char*str,int n)//{// assert(dest!=NULL&&str!=NULL);// char *p = dest;// int count = 0;// while(count<n)// {// count++;// *dest++ =...
2018-11-25 23:23:13 175
原创 排序算法
一.冒泡排序时间复杂度:O(n^2)有序:1 2 3 4 5 6 O(n)无序:2 3 6 4 7 5空间复杂度:O(1)稳定性:稳定排序(相同数据排序前后是一样的,没有发生跳跃式变化)核心代码:二.选择排序从待排序数字后找到比待排序数字小的数字就发生交换,直到整个序列遍历完时间复杂度:O(n^2)有序:O(n^2)无序:O(n^2)空间复杂度:O(1)稳定性:不稳定...
2018-11-18 18:56:45 119
原创 动态内存分配
什么是malloc?这个函数要实现的功能是在系统中分配一段连续的可用的内存,具体有如下要求:malloc分配的内存大小至少为size参数所指定的字节数malloc的返回值是一个指针,指向一段可用内存的起始地址多次调用malloc所分配的地址不能有重叠部分,除非某次malloc所分配的地址被释放掉malloc应该尽快完成内存分配并返回(不能使用NP-hard的内存分配算法)实现mall...
2018-11-07 22:18:13 177
原创 指针数组
1.int 指针 float和零值如何比较int 型变量n与零值的比较:if(n == 0)if(n != 0)char p与零值的比较:if(p == NULL)if(p != NULL)float 型变量x与零值的比较:if(x == 0.0) if(x != 0.0)都是错误的比较正确比较为:const flaot EPSINON = 0.00001;if(x...
2018-10-24 22:58:24 133
原创 C语言基础知识篇三
C语言基础知识篇三数组名有两种情况代表的是整个数组:1、sizeof(arr)//整个数组的字节大小2、&arr+1;//数组最后一个元素的后面3.访问数组当中元素的方法:(1).可以通过下标去访问(2).通过指针的形式访问4.什么是数组:相同类型的数据集合5、数组存放在哪个位置??方法内6、数组什么时候确定大小?5 编译7、什么时候给数组分配内存?? 运行...
2018-10-19 22:30:59 374
原创 C基础知识总结篇二
**C基础知识总结篇二**#include<stdio.h>/*块注释:1.变量:运行过程中可以改变的。作用域:花括号之间(局部变量)。生命周期:当前函数运行完,变量的内存就会自动回收定义变量可以用字母,数字,下划线;变量开头不能用数字局部变量没有给初值,默认值为随机值。例:int...
2018-10-12 13:19:16 132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人