-
通过先序遍历和中序遍历后的序列还原二叉树(实现方法)
所属栏目:[经验] 日期:2021-01-11 热度:187
当我们有一个 先序遍历序列:1,3,7,9,5,11 中序遍历序列:9,1,11 我们可以很轻松的用笔写出对应的二叉树。但是用代码又该如何实现? 下面我们来简单谈谈基本思想。 首先,先序遍历的顺序是根据 根-左孩子-右孩子 的顺序遍历的,那么我们可以率先确认的是先序[详细]
-
IOS 开发UITextView回收或关闭键盘
所属栏目:[经验] 日期:2021-01-11 热度:181
IOS 开发UITextView回收或关闭键盘 iOS开发中,发现UITextView没有像UITextField中textFieldShouldReturn:这样的方法,那么要实现UITextView关闭键盘,就必须使用其他的方法,下面是可以使用的几种方法。 1.如果你程序是有导航条的,可以在导航条上面加多一[详细]
-
面试题快慢链表和快慢指针
所属栏目:[经验] 日期:2021-01-11 热度:159
腾讯的一道面试题:如何快速找到位置长度单链表的中间节点?普通方法,就是先遍历,在从头找到2/length的中间节点。算法复杂度是:O(3*n/2)。而更快的方法就是利用快慢指针的原理。 快慢链表:利用标尺的思想,设置两个指针(一快一慢)*serach和*mid,刚开[详细]
-
详解原码、反码与补码存储与大小
所属栏目:[经验] 日期:2021-01-11 热度:186
详解原码、反码与补码存储与大小 原码: 如果机器字长为N个bit,那么一个数的原码就是N位二进制数,最高位 是符号位,1代表负数,0代表正数。 反码: 正数的反码就是原码,负数的反码就是符号位不变,其他取反。 补码: 正数的补码与其原码相同;负数的补码是[详细]
-
数据结构用两个栈实现一个队列的实例
所属栏目:[经验] 日期:2021-01-11 热度:55
数据结构用两个栈实现一个队列的实例 栈是先进后出,队列是先进先出 每次元素都push在st1中,pop的时候如果st2为空,将st1的栈顶元素放在st2的栈底,这样st1的所有元素都放在st2中,st1的栈底就是st2的栈顶,pop st2的栈顶,这样就满足了队列的先进先出。 #in[详细]
-
linux 匿名管道实例详解
所属栏目:[经验] 日期:2021-01-11 热度:89
linux中进程的一种通信方式――匿名管道 pipe函数建立管道 调用pipe函数时在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端一个写端,然后通过_pipe参数传出给用户程序两个文件描述符,_pipe[0]指向管道的读端,_pipe[1]指向管道的写端。所以管道在用户[详细]
-
数据结构 栈的操作实例详解
所属栏目:[经验] 日期:2021-01-11 热度:73
数据结构 栈的操作实例详解 说明: 往前学习数据结构,想运行一个完整的顺序栈的程序都运行不了,因为书上给的都是一部分一部分的算法,并没有提供一个完整可运行的程序,听了实验课,自己折腾了一下,总算可以写一个比较完整的顺序栈操作的小程序,对于栈也[详细]
-
数据结构 中数制转换(栈的应用)
所属栏目:[经验] 日期:2021-01-11 热度:85
数据结构 中数制转换(栈的应用) 问题描述: 将一个非负的十进制整数N转换为另一个等价的基为B的B进制数的问题。 解答:按除2取余法,得到的余数依次是1、0、1、1,则十进制数转化为二进制数为1101。 分析:由于最先得到的余数是转化结果的最低位,最后得到的[详细]
-
矩阵的行主序与列主序的分析
所属栏目:[经验] 日期:2021-01-11 热度:175
1.矩阵在内存中的存储 不管是D3D还是OpenGL,使用的矩阵都是线性代数标准的矩阵,只是在存储方式上有所不同。分别为:行主序(Direct3D),列主序(OpenGL) 存储顺序说明了线性代数中的矩阵如何在线性的内存数组中存储。 例如:内存中使用一个二维数组m存储矩阵[详细]
-
数据结构串的操作实例详解
所属栏目:[经验] 日期:2021-01-11 热度:167
数据结构串的操作实例详解 串是一种特殊的线性表,它的每个结点是一个字符,所以串也称作字符串。 关于串的操作主要有求串长,串复制,串连接,求子串,串插入,串删除,子串定位等。串的操作也是C语言笔试中常考的一部分。 下面的代码实现了串的主要操作。[详细]
-
IOS开发之UIScrollView实现图片轮播器的无限滚动
所属栏目:[经验] 日期:2021-01-11 热度:175
IOS开发之UIScrollView实现图片轮播器的无限滚动 简介 在现在的一些App中常常见到图片轮播器,一般用于展示广告、新闻等数据,在iOS内并没有现成的控件直接实现这种功能,但是通过UIScrollView的允许分页设置,可以实现滚动轮播的功能。 轮播原理 UIScrollVi[详细]
-
C++简单实现的全排列算法示例
所属栏目:[经验] 日期:2021-01-11 热度:137
本篇章节讲解C++简单实现的全排列算法。供大家参考研究具体如下: #include "stdafx.h"#include string#include algorithm#include iostreamvoid func(const char *str_in){ std::string str(str_in); std::sort(str.begin(),str.end()); do { std[详细]
-
C++调试记录与心得分享
所属栏目:[经验] 日期:2021-01-11 热度:182
之前开发用Linux C比较多,C++中的STL 容器基本没有接触过。最近在学习C++,平时用到c++ 17中的部分新特性,下面就简单分享下自己C++的学习流程。 一、环境搭建 本人使用的是CentOS 7系统,该系统默认的g++版本不支持c++17的新特性。所以,首先需要做的就是[详细]
-
C++基于蔡基姆拉尔森计算公式实现由年月日确定周几的方法示例
所属栏目:[经验] 日期:2021-01-11 热度:118
本篇章节讲解C++基于蔡基姆拉尔森计算公式实现由年月日确定周几的方法。供大家参考研究具体如下: #include iostream#include stringusing namespace std;int whatday(int y,int m,int d) { // 返回正确的星期。用 0 - 6 表示 星期 1 - 7 if(m==1|[详细]
-
C++中vector可以作为map的键值实例代码
所属栏目:[经验] 日期:2021-01-11 热度:124
因为项目中需要根据状态找到一个对应的结果,就采用了map的结构,但是状态本身较为复杂,存在一个vector中。上次使用map的经验是自定义类类型作为键值必须重载操作符,因为map的快速查找是基于红黑树的构建,因而键值必须能相互之间比较。所以担心vector作为[详细]
-
C语言二维数组中的查找的实例
所属栏目:[经验] 日期:2021-01-11 热度:177
C语言二维数组中的查找的实例 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路描述:一个数字的下方和右方是比它[详细]
-
C++/C 回文字符串的实例详解
所属栏目:[经验] 日期:2021-01-11 热度:98
C++/C回文字符串的实例详解 判断输入的字符串是不是回文字符串,正反读一样。 .C版 #includestdio.hint main(){ char he[100]; char a; int i=0,flag=1; while((a=getchar())!='n') { he[i]=a; i++; } int n=i; for(i=0;in/2;i++) { printf("%ct%cn",he[i[详细]
-
详解NSString 与C++ string字符串的互转
所属栏目:[经验] 日期:2021-01-11 热度:124
NSString 与C++ string字符串的互转实例详解 1. string 转换为 NSString std::string str("hello"); NSString *str=[NSString stringWithString:str.c_str()]; NSString *istr=[NSString stringWithString:@"zsh"]; str=[istr cStringUsingEncoding: NSUTF8S[详细]
-
C++中链表操作实例分析
所属栏目:[经验] 日期:2021-01-11 热度:133
链表概述 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用[详细]
-
C++编写非侵入式接口
所属栏目:[经验] 日期:2021-01-11 热度:95
终于写到c++的非侵入式接口了,兴奋,开心,失望,解脱,…… 。在搞了这么多的面向对象科普之后,本人也已经开始不耐烦,至此,不想做太多阐述。 虽然,很早就清楚怎么在c++下搞非侵入式接口,但是,整个框架代码,重构了十几次之后,才终于满意。支持给基[详细]
-
高效实现整型数字转字符串int2str的方法
所属栏目:[经验] 日期:2021-01-02 热度:122
将数字转换成字符串有很多方法,现在给出一种高效的实现方法。开阔眼界。 char* int2str(unsigned int values){ const char digits[11] = "0123456789"; char* crtn = new char[32]; crtn += 31; *crtn = ' '; do { *--crtn = digits[values%10]; } while ([详细]
-
详谈全排列next_permutation() 函数的用法(推荐)
所属栏目:[经验] 日期:2021-01-02 热度:80
这是一个c++函数,包含在头文件algorithm里面,下面是基本格式。 1 int a[];2 do{3 4 }while(next_permutation(a,a+n)); 下面的代码可产生1~n的全排列 #include stdio.h#include algorithmusing namespace std;int main(){ int n; while(scanf("%d", for(int[详细]
-
Visual Studio 2017创建.net standard类库编译出错原因及解决方
所属栏目:[经验] 日期:2021-01-02 热度:178
正式版上个月已经Release了,从那时到现在经常会收到更新提示,估计问题还不少吧!其中最吸引我的当然是.net standard与.net core。 刚好最近接触.net standard项目,新建一个类库直接编译却出错!!立马心情不太好了,对它的兴趣大打折扣! 如果是新手估计[详细]
-
Visual Studio 2017安装失败的解决方法
所属栏目:[经验] 日期:2021-01-02 热度:141
vs2017安装操作失败,今天VS2017更新之后...MVC5右击没有Controller出现 然后我就修复,重装...都不行并且出现 安装操作失败..提示.Net.Core.SDK安装失败 然后我又下载了个SDK...装不上去... 错误提示: 由于发生一个或多个包故障,产品未能安装列出的工作负[详细]
-
linux kill命令详解
所属栏目:[经验] 日期:2021-01-02 热度:203
kill 命令的用途 kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的。我们来看一下 man page 对它的解释:kill - send a signal to a process. 从官方的解释不难看出,kill 是向进程发送信号的命令。当然我们可以向进程发送一个终止运行的信号,此[详细]