- 博客(117)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 二叉树的中序遍历(非递归实现)
一、递归实现前序,序,后序遍历;对于二叉树,前面已经采用递归的方式实现的其前序,中序,后序遍历,具体请参见:http://blog.csdn.net/dai_wen/article/details/78955411那么,如何采用非递归的方式遍历树呢?下面,以实现中序遍历二叉树为主题展开:二、非递归实现 中序遍历:1,结构: 首先,对于中序遍历,我们知道,原则是先走到的结点后访问,后走到的结点
2018-01-04 20:37:39
21912
9
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 堆栈和内存分配
一:内存管理概述: 如图一所示,在计算机中,主要分为以上存储区域中,分别是:硬盘、内存、高级缓存 和寄存器。执行程序后,他们的运行速率自下而上(图一)加快,与之相应的造价越高,其中,硬盘的运行效率最慢,寄存器的效率最快。在这几个区域里,今天重点介绍一下内存。在C++ 中,内存主要分为五个区,分别是:代码区、栈区、堆区、静态(全局)数据区。(一)、代码区:代码区是用来储存程序的所有代码,以及字符串常
2017-10-31 20:33:50
10774
4
原创 python3 manage.py migrate报错Traceback (most recent call last): File “manage.py“...
执行python3 manage.py migrate报错,如下【1】问题其实问题在于绿色框内File "D:\xxx\Python\Python37\lib\site-packages\django\contrib\admin\widgets.py", line 151 '%s=%s' % (k, v) for k, v in params.items(),【2】解决办法既然widgets.py文件错了,那么,就修改它,进入该报错的文件,把.items(),这个后面的逗号去掉就可以
2021-02-08 11:44:34
1877
2
原创 软通动力python工程师面试-堪称魔性
一次魔幻的面试经历【1】时间节点2020/12/10 19:42 约一面时间 2分钟2020/12/11 12:30 一面 技术面 - >36分钟2020/12/15 15:05 约二面时间 - >1分钟2020/12/15 定于18:00面试,等了大约5分钟,我发了一条消息给面试官,未收到回复2020/12/15 19:02 接到二面电话【2】一面-电话面-技术面简单的自我介绍一下吧(项目介绍)Redis如何实现订单编号?订单编号类型?redis异常处理:
2021-02-07 20:41:42
1122
原创 深信服python工程师面试-两轮技术面
堪称是2轮“无表情”技术面。【1】时间节点定于2020/12/12 10:00 一面,等了15分钟,面试官没打电话,联系人资,得到的回复是,已帮我联系面试官,耐心等待一会。2020/12/12 10:32 一面 技术面,- >28分钟定于2020/12/14 20:00 二面,19:52时,面试官电话通知,今天有事,不能面试,约另外时间,于是订到了18号,20:00。2020/12/18 20:09 我主动联系对方,被告知现在在外面,稍后会给我回电话。2020/
2021-02-07 20:15:14
1239
1
原创 该不该放弃年终奖?内含面经
天!你离职了?咋那么sha,为啥不领了年终奖在走?!这句话,大概是我2021年初听到最多的声音啦~那么,年底了,该不该放弃年终奖,选择自己心仪的工作呢?我的建议:年终奖,能拿则拿,毕竟辛辛苦苦一年了,这是咱应得的,对吧,但如果新公司入职时间比较紧,也可以适当取舍~拿我自己的亲身经历来说,我所在公司2021年2月5日发年终奖,而我呢,在这一年的1月12号离职了,也就是说,提前了十多天,导致13薪+年终奖清零,然后,被身边同事问到最多的就是,怎么年终奖没拿就走了?老实说,离职时,我不知道
2021-02-07 11:07:40
355
5
原创 【4】如何解决锁冲突来提升业务并发量?
0.目录1.引发-锁冲突2.解决-锁冲突1.引发-锁冲突在并发系统中,不同线程出现循环资源依赖,各个线程都在等待别的线程释放资源,导致这些线程都处于无限等待状态,这种现象称为死锁;????举个例子:如上所示,事务A在等待事务B释放id=2的行锁,事务B在等待事务A释放id=1的行锁,事务A和事务B相互等待对方释放资源,陷入死锁状态!2.解决-锁冲突解决锁冲突,本文提供三种方案;way1:如果确定某个业务相对独立,不会与其它业务抢夺资源,可以临时将死锁检测关掉。//关闭死锁检测inn
2020-09-14 15:16:45
419
原创 【3】MySQL事务详解
今日,收到某知名双一流大学硕士,给我发来一道面试题:**题目描述:**了解事务么?项目中使用事务的情形,一次性操作多个表是否都需要使用事务?事务的隔离级别有几种?都为了解决什么问题?InnoDB的默认级别是?这篇文章,将围绕这写问题展开;1.目录 1.什么是事务 2.项目中使用事务的场景? 3.一次性操作多个表是否都需要使用事务 4.事务的隔离级别有几种?解决什么问题? 5.InnoDB的默认级别 6.可重复读使用场景 7.MySQL事务的启动方式1.什么是事务事务:保证一组数据
2020-09-12 13:49:30
243
原创 【2】更新一条MySQL语句到底发生了什么?
1.目录1.redolog & binlog2.剖析:update T set c=c+1 where id=23.redolog两阶段:prepare &commit4.设置redolog&binlog持久化到磁盘1.redolog & binlog写在开头://本文涉及的数据库语句:create table T(id int primary key);update T set c=c+1 where id=10;1.redolog(重做日志)&
2020-09-12 10:04:06
869
原创 【1】执行一条MySQL语句,到底发生了什么?
1.目录a.MySQL架构b.剖析select * from T where id=10;执行过程3.长连接&短链接4.解决长连接占用内存问题5.使用查询缓存的场景a.MySQL架构/*本文围绕数据库语句如下:*/select * from T while id=10;select * from t1 join t2 where t1.id=t2.id;MySQL大致可以分为两个模块:Server端存储引擎以下为详细架构图:如上图所示,server端包含了
2020-09-12 08:13:15
310
原创 迷途,随笔
很久没有打开博客了,最后一次写博客,大概是在八月份吧,那时候,秋招还未开始,提前批已经悄然拉开的帷幕,还记得自己当时的模样,充满希望,充满期待,真是一个元气满满的美少女呢,可是,到现在,我似乎迷茫了。这段时间,发生了太多事情,一言难尽吧,我是多么阳光的一个女孩子啊,,一直以来,不管遇到什么,都能自己扛下来,都可以从容淡定的去处理,哪怕遇到天大的事情,我也不会哭鼻子,因为,我知道,我不能哭,我得担...
2020-09-06 10:20:04
1255
4
原创 Linux下启动django项目,网页打不开127.0.0.1:8000
问题一:you have 13 unapplied mig…解决:这是因为项目的settings需要建立数据库表,然后才可以应用到你的项目里。有关未应用未做最新数据库迁移。python3 manage.py makemigrationspython3 manage.py migrate运行结果如下:问题2:服务器运行正常,浏览器访问失败,无法访问此网站解决办法:linux启动django时,默认启动ip为127.0.0.1:8000,此时我们将127.0.0.1换成自己的ip。st
2020-06-05 14:58:02
2927
2
原创 【Linux】VMware中ip配置
前言Linux操作系统在程序员的世界里,尤为重要,可以说,在linux操作系统下没有几招的程序员,不是一个合格的程序员。那么,我们要用到Linux操作系统,就难免会遇到各种棘手的问题,本文即为冰山一角-配置虚拟机的ip。为什么要ip?在实际开发中,我们可能需用到Xshell等远程连接工具连接虚拟机,也可能用到MySQL数据库等均需要连接到虚拟机,来进行一些操作,那么,这些连接的关键,即为ip...
2020-05-01 09:30:04
924
1
原创 【面向对象】-总结
1.导入2.三大特征3.六大原则4.总结一、 导入过年了,锣鼓喧天,鞭炮齐鸣,欢天喜地~七大姑八大姨:代文,有对象了吗?我:那肯定的。她们:什么时候交的啊?家哪里的?身高?长相。。。。我:刚new出来的,你们想要什么样的,我按需再new一个。妈:文文天天new对象,也不知道new的咋样了。我:哈哈哈哈哈。。快了,快了。。。。。1.1什么是面向过程?什么是面向对象?是按硬盘...
2020-04-29 11:21:12
1257
原创 【数据结构】合并K个有序链表(采用分治法、vector排序法分别实现)
一、合并K个链表将n个已经有序的链表,合并成一个链表,使之有序 【1】排序法实现,时间复杂度为O(KNlogKN) 【2】分治法实现,时间复杂度为O(KNlogK)#include<iostream >#include<vector>#include<algorithm>using namespace std;struct ListNode...
2018-08-25 22:31:41
2056
原创 【数据结构】复杂链表深度拷贝
一、复杂链表深度拷贝【1】题目:已知一个复杂链表,该链表除了有一个指向下一个节点的指针外,还有一个指向任意节点的指针, 求: 设计一种方法,拷贝构造该链表 【2】算法思路: 1、使用一个map,将链表的地址映射成一个整数,即给链表的每个节点编号 2、使用一个vector,将新链表中的节点按照map中的指向指好【3...
2018-08-25 22:15:59
662
2
原创 【数据结构】N皇后(递归经典算法)
一、N皇后1、题目 将n个皇后摆放在N*N的棋盘中,互相不可攻击,有多少种摆放方式,每种摆放方式具体是怎样的?2、解题思路 解题思路: 1、将棋盘放在一个二维数组中,同时设置方向数组: static const int dx[] = {-1,1,0,0,-1,-1,1,1,}; static const int dy[] = {-1,0,-1,...
2018-08-21 11:40:53
10083
3
原创 【数据结构】回溯,递归,归并算法及使用场景
一、求子集a1、题目 已知一组数(其中无重复元素),求这组数可以组成的所有子集; 结果中不可有重复的子集 例如: nums[] =[1,2,3] 结果为:【[], [1] , [1,2], [1,2,3], [1,3], [2] ,[2,3], [3] 】解题思路: 利用栈(vector)来递归实现; 2、程序实现#include<iostream>#inc...
2018-08-21 11:20:47
653
原创 【数据结构】常见的贪心算法使用场景
一、摇摆序列1.1题目: ==========================author daiV================ 一个整数序列,如果两个相邻元素的差正好正负交替出现,则称该序列为摇摆序列。 一个小于两个元素的序列直接为摇摆序列; eg:{1,7,4,9,2,5},相邻元素的差为{6,-3,5,-7,3},该序列为摇摆序列 eg: {1,4,7,2,5},相邻元素的...
2018-08-16 22:07:10
6015
原创 【数据结构】栈、队列、堆总结
零、基本操作/*栈的基本操作:*/std::stack&lt;int&gt; s;s.top();s.push();s.pop();s.empty();s.size();/*队列的基本操作:*/std::queue&lt;int&gt; q;q.front();q.push(x);q.back();q.pop();q.empty();q.size();/*堆的基...
2018-08-15 23:05:47
566
原创 【数据结构】链表总结
一、链表逆置1、题目、已知一链表,求将其逆置后的链表 2、代码实现#include<iostream>using namespace std;struct ListNode{ int val; ListNode *next;};class solution{public: ListNode* reverseList(ListNode*...
2018-08-14 18:53:56
233
原创 【数据结构】贪心算法(人民币、分糖果)
一、贪心算法存于生活中1、人民币支付问题 现在去超市买东西,结账时,要求支付一定金额的现金,那么,按照生活常识,我们肯定会选择尽可能少的拿出钱的张数去满足支付金额,比如说:应付628元,这时候,我的钱包里有足够多的以下面额的钱:100,50,20,10,5,2,1,那么,我肯定会拿出6张100块的,1张20的,1张5块的,1张2块的,最后再拿出1张1块的,6*100+20+5+2+1 = 6...
2018-08-13 16:39:50
5386
原创 【数据结构】使用多态实现一个线性表
/* 使用多态实现一个线性表(队列,串,堆栈) 要求: 具有线性表的基本操作:插入,删除,测长等。 思路: 队列,堆栈都以实现push,pop,测长等操作。 现在要求用多态实现,就要建立一个线性表的共性模板,来实现以上功能。*/#include<iostream>using namespace std;template<typename...
2018-08-08 15:45:41
369
原创 【数据结构】和为s的数字
一、题目:和为S的两个数字输入一个递增的排序的数组和一个数字,在数组中查找两个数,使得它们的和正好是S,如果有多对数字的和等于S,就任意输出一对即可二、示意图:三、代码实现#include<iostream>using namespace std;/*题目:和为S的两个数字 输入一个递增的排序的数组和一个数字,在数组中查找两个数, 使...
2018-08-06 13:37:52
330
原创 【网络编程】进程与线程详解
【0】目录【1】什么是进程?什么是线程?什么是并发?什么是并行? 【2】多进程和多线程的区别? 【3】.进程间通信方式以及优缺点? 【4】.进程、线程的基本状态及状态之间的关系? 【5】.多线程有哪些实现方式? 【6】.什么时候用多线程?什么时候用多进程? 【7】.线程同步和线程异步? 【8】.多线程同步和互斥有几种实现方法,分别适用什么情况? 【9】.条件变量与互斥锁、信号量...
2018-08-05 18:33:08
375
原创 【网络编程】TCP三次握手及四次握手详解
TCP通信时序一、概念TCP是一种面向连接的、可靠的协议,点到点的协议。有点像打电话,双方拿起电话互通身份之后就建立了连接,然后说话就行了,这边说的话那边保证听得到,并且是按说话的顺序听到的,说完话挂机断开连接。也就是说TCP传输的双方需要首先建立连接,之后由TCP协议保证数据收发的可靠性,丢失的数据包自动重发,上层应用程序收到的总是可靠的数据流,通讯之后关闭连接。二、TCP图...
2018-07-30 12:33:32
1417
2
原创 【offer】第一次笔试及面试总结与反思
一、字符串第二弹:两头堵模式字符串问题中, 模拟实现strcpy,和strstr 是两大重点,现在介绍第三大重点,两头堵模式,即在形如" abcdefghijklmnopqrstuvwxyz "的字符串,去掉前后空格, 形成新的字符串,或是求出非空格的字符个数等,都需要用到两头堵模式;二、举个例子:#include "stdio.h"#include "stdlib.h"
2018-07-29 16:32:41
1459
原创 【C++】智能指针-autoptr(建议不要使用)
一、引入1、我们先看一段代码void FunTest(){ int *p = new int[10]; FILE* fp = fopen("1.txt","rb"); if(fp==NULL) { return;//因为忘记释放p,所以会造成内存的泄漏 } //Dosomething; if(p!=NULL) ...
2018-07-23 08:47:01
1926
原创 使用DS12C887时钟芯片设计高精度时钟(单片机)
一.实验目的及要求 1、在1602液晶上显示年、月、日、星期、时、分、秒,并且按秒实时更新显示。 2、具有闹铃设定及到时报警功能 3、能够使用板上的按键调节各个参数。 4、每次有键按下时,蜂鸣器都以短“滴”报警。 二.实验内容 (1)实验原理图 DS12C887引脚结构及其功能如下: 管脚名称: AD0-AD7——地址/数据复用总线 NC——空脚 MOT——总线类型选择...
2018-07-15 10:18:47
14159
13
原创 【数据结构】博弈游戏取石子
一、游戏思路:欢迎来到“取石子”游戏世界,这是一个减法游戏。两名对手交替从某给定的总数减去一个数,每个对手只能减去1或者2, 谁第一个把总数减到零或者更小的数算谁赢。比如说: (1)、我们从数字8开始,你先动手; (2)、你从总数里减去2,还剩下6; (3)、我也减去2,还剩下4; (4)、你再减去2,还剩下2 (5)、我在减去2,等于零 (6)、我赢了 这是一个很简单的游戏,只需要考
2018-06-30 16:31:32
4490
1
原创 【数据结构】七种常见排序算法详解(直接插入、希尔、选择、冒泡、快速,归并、堆排序)
一、什么是排序?【1】排序:就是将一组杂乱无章的数据按照一定的规律(升序或降序)组织起来。 数据表:待排序数据元素的有限集合。 排序码:通常数据元素有多个属性域,其中有一个属性域可用来区分元素,作为排序依据,该域 即为排序码。 如果在数据表中各个元素的排序码互不相同,这种排序码称为主排序码。按照主排序码进行排序,排序的结果是唯一的。按照次排序码进行排序,排序的结果可能是不唯一的。...
2018-06-17 11:21:39
2894
2
原创 【C++】Complex复数类运算符重载(全局函数实现)
一、复数类重载相关基础知识详情见上一篇博客,奉上链接 https://blog.csdn.net/dai_wen/article/details/80245987这里展示Complex复数类运算符重载的另一种方式:利用全局函数实现 我们知道,在c++中,类的成员函数与全局函数可以互相转换,全局函数转为类的成员函数时,会将参数列表中的第一个参数隐藏起来,用一个隐式的this指针来代替,类...
2018-05-09 08:17:00
1405
原创 【C++】Complex复数类运算符重载(类的成员函数实现)
一、复数类运算符重载《1》分类:在c++中,有些运算符可以重载,有些不可以重载,详情见下图:那么,一般用的比较多的有**+、-、*、/、=、前置++,- -、后置++,- -、<<,故而,今天,我们将来实现这些操作,以复数类为例:《2》方法我们知道,在c++中,类的成员函数与全局函数可以互相转换,全局函数转为类的成员函数时,会将参数列表中的第一个参数隐藏起来,用一个隐式的this**指针来代替,类的成员函数转全局函数时,过程相反,为了保证类的私有成员变量可以被该全局函数正常访问,需要
2018-05-08 21:16:50
13481
2
原创 【数据结构】模拟商场货物购进和卖出的场景
一、题目某商场经销一种货物。货物购进和卖出均以箱为单位,各箱的重量不一样,因此,商场需要记录目前库存总重量,现在请使用c++模拟商场货物购进和卖出的场景;二、分析问题《1》场景模拟: 《2》选择数据模型: 通过上述场景模拟,我们知道,如果要将库房中的货物卖出或者重新购置货物,需要考虑一下几个因素:1、当库房中没有货物时,不可以卖出。2、当购买一个货物时,需要把它放在...
2018-05-04 08:53:59
2659
原创 程序退出main()函数之后,还有可能执行代码吗?
一、main()函数【1】main()函数概念: main()函数称为主函数,一个程序中有且只有一个,拥有程序的执行权,程序在执行时总是先找到主函数,然后从它开始执行,当它调用某个子函数时,便将执行权交给被调用函数,被调用函数执行完毕后,再将执行权还给主调函数,主函数继续执行,一旦主函数结束,代表整个程序就结束了,那么,程序退出main()函数之后,还有可能执行代码吗?答案是肯定的 【2...
2018-04-23 17:11:51
5776
4
原创 快速排序法
快速排序法【0】目录:【1】题目 【2】思想 【3】代码实现 【4】测试结果【1】题目:写一个快速排序法, 将 int data[100] = {20,30,404,35,92,34,16,97,55,44,22,4,32,442,65,234,22,20, 365,202, 10,40,454,32,22,4,166...
2018-04-16 16:45:25
266
原创 对公司几万名员工按年龄排序(时间复杂度为O(N))
【0】 目录【1】题目 【2】分析 【3】测试代码 【4】测试结果【1】题目:面试官: 请实现一个排序算法,要求时间复杂度为O(N) 应聘者:请问对什么数字进行排序,共有多少数字? 面试官:我们想对公司所有员工按年龄排序,我们公司共有几万名员工; 应聘者:也就是说数字的大小在一个较小的范围之内,对吗? 面试官:是的 应聘者:可以使用辅助空间吗? 面试官:看你用多少内存...
2018-04-16 15:24:21
2101
1
原创 【10】斐波那契数列的循环和递归实现
面试题10:斐波那契数列【0】目录:【1】题目 【2】分析 【3】测试代码 【4】测试结果 【5】算法优劣分析【1】题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列: 1,1,2,3,5,8,13,21,34,55,89 …… 【2】分析:在斐波那契数列中,不难得出规律,当n > 2时,某个数等于前两位数之和,如...
2018-04-16 14:18:48
1603
1
空空如也
拷贝构造函数是必须的吗?
2017-10-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人