自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (17)
  • 收藏
  • 关注

原创 【c++面试】c++语言基础

c++面试语言基础知识总结

2022-06-12 15:47:11 420

原创 求 二叉树中和为某一个值的所有路径(非递归版本c语言实现)

题目/* 二叉树中和为某一个值的路径:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点的所有经过的节点形成一条路径。 */思想:借助栈,将从根开始往下的中序节点遍历,如果当前节点的值加上之前的节点的值得和是小于n时,将该值入栈,继续遍历;如果等于,则入栈,打印栈中所有元素,然后出栈该元素,继续往后面元素遍历;如果大于,往后继续遍历。代码:/* 二叉树中和为某一个值的路径:输入一颗二叉树和一个整数,打印出二...

2020-08-29 20:53:42 475

原创 用队列queue实现搜索二叉树的层序遍历、求树高度、求树的镜像树

是需要一层一层处理的问题二叉树的问题,都可以借助一个队列来实现。/* 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点) */single_list_node* LevelOrder_Walk_With_Queue(bstNode* root){ queue* qu = CreateQueue(); single_list_node* head = NULL; bstNode* p = root; if(NULL == p) { return ..

2020-08-24 22:37:40 322

转载 无头链表和有头链表的区别

无头链表和有头链表的区别一点吐槽。做了很多单链表的题目,看到网上有很多无头链表的题目,就一直很疑惑,无头?链表怎么可以无头??然后百度了下,如上面的博文中解释。但是我还是有点不服气,明明还是有头的呀,区别不过是第一个节点有没有存放数据的区别好嘛。谁先把这种两边叫无头链表的??(真误人子弟哎)不过我第一次自己写链表的时候真的有点疑惑第一个节点到底是存不存数据呢?后来想了想,还是存了数据。结果我一直写的是无头链表的。...

2020-08-15 09:13:08 1370

原创 单链表找环入口节点

/*有环链表寻找入口节点1、求环长度:快慢指针,一个指针走一步,一个走两步,当两个指针第一次相遇的时候,走的次数即是环长度2、一个指针先走环的长度步数,另外一个指针从头开始, 然后两个指针同时走,第一次相遇即是环的入口节点*/single_list_node* find_cricle_list_entrance(single_list_node* head){ single_list_node* p1 = head, *p2 = head; int circle_len = 0, n = 0..

2020-08-15 08:42:31 235

原创 查找倒数第k个节点,只遍历一遍

/*15:查找倒数第k个节点(要求只能遍历一次)*/single_list_node* find_Reverse_order_nth_number(single_list_node* head, int n){ int i = 0; single_list_node* p1 = head, *p2 = head; if(n <=0) { printf("input %d is InValid.\n",n); return NULL; } while(p1 != NULL).

2020-08-10 22:49:47 159

原创 倒着打印单链表

/* 16:倒着打印单链表 */void Reverse_print_linked_list(single_list_node* head){ single_list_node* p = head; stack* st = createStack(); while(p != NULL) { push(st, p->data ); p = p->next; } while(!StackIsEmpty(st)) { printf("%d ",GetTop(st)).

2020-08-10 22:48:43 120

原创 逆置单链表

/* 17:逆置单链表 */single_list_node* Reverse_List(single_list_node* head){ single_list_node *p = NULL, *p_left = NULL, *p_right = NULL; p_left = head ; if(NULL == head) { return NULL; } /*p指向即将反转指向的节点,p_left指向被反转后的链表的尾部节点 p_right指向还没处理的部分的第一个节点*.

2020-08-10 22:47:28 198

原创 单链表冒泡排序

/*链表排序:冒泡*/single_list_node* SortList(single_list_node* head){ single_list_node *p = NULL, *p_left = NULL, *p_right = NULL; single_list_node *tmp = NULL, *prev = NULL; p_left = head; if(head == NULL) { return NULL; } p = head->next; p_le.

2020-08-10 22:46:31 135

原创 两个有序单链表合并

/*合并两个有序链表*//*思想:可以这样想,是将两个链表list1, list2合成一个第三个链表merge_list的过程。1. 先从两个链表的头中选择小的节点,初始化作为合成链表merge_list的头,2. 然后从两个链表头开始,选择两个链表头节点小的那一个,开始找,找到全部小于另外一个链表头的所有节点,3. 将这部分加到merge_list,然后这个链表的头更新,继续开始重复2, 直到有一个链表到达结尾null*/single_list_node* Merge_two_ordered.

2020-08-10 22:45:28 1202

原创 单向链表--查找中间节点

/*查找中间节点*//*思想很简单,两个指针,同时开始从头走,一个一次走两步,一个一次走一步,偶数节点时候,中间的返回前面或后面的都可,奇数个节点的时候返回中间节点*/single_list_node* Find_middle_node(single_list_node* head){ single_list_node *p1 = NULL, *p2 = NULL; if(NULL == head) { return NULL; } p1 = p2 = head; while(p.

2020-08-10 22:44:26 705

原创 单向链表基础操作(删除、插入、查询)代码实现及进阶(反转、排序、逆置、查找倒数第K个节点、查找中间节点)

single_linked_list.h/* **功能:应用C语言实现单链表的各项操作 ** 1:建立节点 ** 2:打印单链表 ** 3:尾插 ** 4:尾删 ** 5:头插 ...

2020-08-10 22:39:40 275

原创 用两个栈实现队列(c语言代码)

栈的代码详见:stack的数组实现和测试队列的数组实现:队列的数组实现(c语言代码)思想:栈 先进后出,队列先进先出。/*利用两个栈实现队列*/typedef struct QueueStack{ stack* st1; stack* st2;}queuestack;队列尾部添加新元素:st1的栈顶push新元素(因此st1的栈顶是最新写到队列的元素);队列头部删除元素:1. 如果栈st2中没元素,则栈st1中栈底是最早写入元素,将栈st1中的元素依次pop出来,写入s

2020-08-08 20:25:34 1288

原创 队列的数组实现(c语言代码)

队列:先进先出的线性表三个要素:1.存放数据的数组;2.队列头:指向数据存放的第一个位置3、队列尾:指向已存放数据的下一个位置queue.h#ifndef __QUEUE_H_#define __QUEUE_H_typedef struct Queue{ DataType data[length]; int head; int tail;}queue;queue* CreateQueue();void DeleteQueue(queue* qu);int

2020-08-08 18:31:41 669

原创 stack的数组实现和测试

栈:实现一种先进后出的数据结构数组实现栈的几个要素:1.数据:存放数据的数组2. 栈顶 :指向栈的最上面一个元素的上面一个位置3. 栈底:指向栈的第一个元素的位置stack.h#ifndef __STACK_H_#define __STACK_H_#define bool_t int#define length 100typedef float DataType ;typedef struct Stack{ DataType data[length]; i.

2020-08-08 11:27:24 279

原创 根据二叉树的中序遍历序列和前序遍历序列恢复出二叉树

节点结构体如下:typedef struct BinaryTreeNode{ int value; struct BinaryTreeNode* left; struct BinaryTreeNode* right;}BinaryTree_Node;背景知识:前序遍历:访问顺序 根 左 右中序遍历:访问顺序 左 根 右所以,前序的第一个元素是整棵树的根节点,根节点后面先是左子树,然后右子树。中序序列中,根节点所在的位置的左边是根节点的左子树,右边是右子树。因此每次可根据..

2020-08-02 11:19:26 369

原创 面试题目--一步步优化快速排序

#if 1void swap(int* a, int i, int j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}void select_piovt(int *a, int start, int end){ int mid = (start + end)/2; //end is max if(a[end] < a[mid]) { swap(a, mid , end); } if(a[end] < a[start]).

2020-08-01 21:27:04 236

原创 linux进程挂死时候如何定位问题

1、先ps aux查看进程状态, D是挂死了(死循环,一直运行)STAT狀態位常見的狀態字符D 无法中断的休眠状态(通常 IO 的进程);R 正在运行可中在队列中可过行的;S 处于休眠状态;T 停止或被追踪;W 进入内存交换 (从内核2.6开始无效);X 死掉的进程 (基本很少見);Z 僵尸进程;< 优先级高的进程N 优先级较低的进程L 有些页被锁进内存;s 进程的领导者(在它之下有子进程);l 多进程的(使用 CLONE_THREAD, 类似 NPTL pth...

2020-06-09 19:19:40 1805

转载 gdb调试coredump

https://blog.csdn.net/qq_39759656/article/details/82858101

2020-01-12 16:16:41 114

原创 个人分支一个commit点提MR时候出现多个commit点

【问题】假设你在txt_main_2分支修改提交,有一个commit点,然后push到远端,准备提交到master分支,发现有3个commit点。【原因】之所以出现多个commit点是因为,在上一次你的txt_main_1分支同步master分支的时候,直接从mster分支merge到txt_main_1,导致这次提交的时候把有些原来主线的commit点识别成为你当前分支txt_main_1的...

2019-12-13 11:48:02 4122

转载 linux内核函数之 blk_plug

https://blog.csdn.net/liumangxiong/article/details/10279089使用:/** * generic_writepages - walk the list of dirty pages of the given address space and writepage() all of them. * @mapping: addr...

2019-11-24 15:37:28 990

转载 malloc和mmanp函数的区别

测试MALLOC 与 MMAP之间读写的性能差异, 测试方法如下:1)编写两个MALLOC程序,一个是随机读,一个是随机写,获取1G内存空间,空间中存放数据结构为 一个总大小为28字节的数据结构,包括一个16字节的字符串, 3个INT数,用于模拟索引结构2)循环100W次,随机获取1G空间范围内的数, 以获取到的随机数为下标,对MALLAC获取到的内存地址进行随机写入 和 读取 并打印完成...

2019-08-08 15:57:01 556

转载 nosetests -a 选项运行用例筛选

转载自:https://blog.csdn.net/wsbl52006/article/details/88978456很多时候我们写的case会非常多,通常会对用例的重要程度做一些分级,比如主流程用例、次要流程用例之类的通过nosetest -h 我们了解到有一个 -a 参数可以达到这个目的-a ATTR, --attr=ATTR Run only tests that ...

2019-08-05 14:17:41 992

转载 gdb coredump 查看栈信息

https://blog.csdn.net/suxinpingtao51/article/details/12072559

2019-06-21 19:13:45 487

转载 GCC编译器内置宏likely(x)与unlikely(x)函数讲解

这篇文章讲得不错,收藏https://www.2cto.com/kf/201709/683510.html

2019-04-11 10:02:06 547

原创 pyinstaller打包生成的exe文件的执行时候弹出黑框,出错时候一闪而过的解决办法

pyinstaller如何打包python可执行文件,请参考下面文章https://blog.csdn.net/u013896064/article/details/80860569下面是我的spec文件:nose_run.spec要想生成的exe文件在执行的时候不弹出黑框,且在当前的控制台运行,出错的时候也可以看到错误信息,就把 console这个参数改成True,然后重新打包。...

2019-03-28 16:15:01 6693

原创 c语言单元测试(cunit)打桩,如何写打桩文件

/** * COPYRIGHT NOTICE * Copyright (c) 2010, * ALL rights reserved. * *@file stub_test.c *本文件定义了malloc() regcomp() regexec() 函数的打桩函数 * * 版本 作者 日期 修订说明 * 1.0.0 t 2018-08-01 最初版本 *...

2018-08-10 13:55:20 6630 2

原创 2018上海泰商汽车面试面经

一面特别简单就不说了,直接说二面吧1.先是自我介绍2.fork  vfork 的区别3.下正则表达式

2017-09-16 21:08:59 2056 1

原创 cvte2018秋季招聘c++开发面试面经

今天cvte的面试官很多时候是想让你展示自己最懂什么,然后他听你展示,每次要问c++ ,数据结构,Linux网络编程之前他都会问一下你了解的深浅,如果你说很熟悉他就会问的很多,如果你说只是了解他就只是问几个简单的问题,所以最好不要谦虚也不要夸大,诚实回答就好,只有这样你才能展示你最多不会让面试官觉得你是在吹嘘或者你太过谦虚面试官也没有了解你的真真水平.1.做个自我介绍2.先说说多态

2017-09-16 20:34:31 703

原创 题目描述:给定一个字符串,求出其所有可能的字符组合. 比如:abc 其所有组合是:a,b,c,ab,ac,bc,abc

/*题目描述:给定一个字符串,求出其所有可能的字符组合.比如:abc 其所有组合是:a,b,c,ab,ac,bc,abc是递归的思想:首先你拿到的是abc,你可以依次打印出去掉c,b,a的组合:ab,ac,bc然后递归用这些子串去调动这个函数,比如ab:依次去掉b,a打印出a,b;ac依次打印出a,c;bc依次打印出b,c;但是存在一个问题打印重复了,这个可以传进去一个参数pos来解

2017-09-08 11:09:14 2146

原创 01背包问题 动态规划 c语言实现

/*在编号为a,b,c,d,e 的五件物品,他们的重量分别是2,2,6,5,4.价值分别是6,3,5,4,6,给你个承重是10的背包,如何让装入背包的物品具有最大价值.*//* * 基本的0-1背包问题: * 已知有N类物品,每类物品都只有一件,对应的重量为w[i],价值为v[i]。 * 背包最多承重为W,在不超出承重范围的前提下,求能拿的物件的最大价值为多少 * *这是DP的一个经

2017-09-06 16:15:47 1915

原创 如何借助于syslogd生成自己的日志,并且将自己应用的日志放进系统日志目录

恩..Linux学习man是个好东西.man  8  rsyslogd 查看系统日志守护进程man 5 rsyslog.conf  查看怎么在/etc/rsyslog.conf里面配置自己的log目录man 3 syslog  查看syslogd的接口函数

2017-08-24 11:49:15 457

原创 summary about laysnc(little details)

重构代码的书籍:> martin forler   (建议工作1到2年读) > kent bank (建议工作4年读)泛型书籍:>   >  设计模式书籍:>  >   >设计模式: 23种cp的 --preserve选项:cp --preserve=mode  src  des      :拷贝时只保留文件的权限,其他被舍弃           cp   --pr

2017-08-16 10:05:53 384

原创 图的深度优先搜索算法DFS

图的深度优先搜索正如其名"深度优先",算法从一个点开始遍历,只要还有可能就尽量的"深入"遍历.第一个节点是v,深度优先搜索总是对最近"发现"的节点的出发边进行探索,直到当前节点的所有出发边已经探索完成,则算法"回朔"到该节点的父节点,去探索父节点的出发边.该过程会一直持续到由v发出的边的所有边都探索完成,如果该图中还有为发现的节点,则从剩下的未发现的节点中选取一个节点开始深度优先算法的运行,重

2017-08-14 10:15:08 653

原创 关于图的广度优先搜索算法的思考.

所谓图的广度优先搜索:对于一个无向或者有向联通图,抓住任意一个节点(假设是s)开始,找到与这个节点直接相连的所有节点,这些节点的深度(depth)是相同的(注意这里所说的深度:是在广度优先遍历的过程中会形成一颗广度优先搜索树,深度即位这个节点在这棵树中的深度,也就是从s到该节点的最短路径),即在广度优先搜索树中的同一层,然后再去找这些节点的直接相连的节点,找到的这些子节点比其父节点的深度+1,这样

2017-08-13 20:28:38 325

原创 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数

#include#includeusing namespace std;int MinInOrder(vector rotateArray){ int result = rotateArray[0]; int index1 = 0; int index2 = rotateArray.size()-1; for(int i=index1+1;i<index2;++i) { i

2017-08-10 13:06:12 457

原创 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

class Solution{public: void push(int node) { stack1.push(node); } int pop() { int t=0; if(stack2.empty()) { if(stack1.empty())

2017-08-09 14:25:41 694 1

原创 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5

#include#includeusing namespace std;//参数是vector 实现// Definition for binary treestruct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(N

2017-08-09 11:24:02 436

原创 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

#include#includeusing namespace std;//optimized codeint find_2(int key,vector > vec){ int found = 0; if(vec.size() == 0 ) { return found; } int row = 0; int column = vec[0].size()-1; fo

2017-08-08 08:46:47 536

原创 strtok_r 源码(测试过的,正确的,之前在网上找的内存错误)

#include#include#includeusing namespace std;char* strtok_1(char* string_org,const char* demial) { static unsigned char* last; //保存分隔后剩余的部分 unsigned char* str; //返回的字符串

2017-08-03 15:27:15 453

c语言实现快速排序(逐步优化)

c语言实现的快速排序算法,及其一步步优化代码(1. 数组长度较小时候选择插入排序;2. 主元在数组最左最右,中间三个数字中间选择中间大小的, 数组拆分后将 重复数字挪到主元附近,不进行重复partition)

2020-08-01

source_insight_color_cfg.rar

每次安装了source insight都是网上各种找source insight的背景颜色配置,没少花费我的积分。 终于积攒了一些好用的颜色配置,分享出来

2020-06-06

windows jdk

jdk-6u45-windows-x64 jdk-7u80-windows-x64 jdk-8u201-windows-x64

2020-03-18

一个小项目的cunit单元测试例子

包含了测试的完整框架,有测试文件,驱动文件,桩函数文件,Makefile,与测试源代码。对于初次接触单元测试的人来说可以说是一个简单易懂的学习例子。

2018-08-13

搜索二叉树c语言版本

c语言实现的搜索二叉树。实现了对树的增加数据,删除数据,中序遍历数据。

2018-08-13

一步一步写Makefile

我觉得要作一个好的和professional的程序猿,makefile还是要懂。这就好像如今有这么多的HTML的编辑器,但假设你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个側面说明了一个人是否具备完成大型工程的能力。

2018-08-10

Makefile从0到精通的代码教程

教你精通Makefile,.一步一步从最简单的到高难度的Makefile写法

2017-08-01

正则表达式(匹配模式)

正则表达式在无论是c c++ 还是 Java 都有应用,尤其是在开发时常用.

2017-08-01

Memcached源码剖析

Memcached源码剖析

2017-05-21

memcached全面剖析

memcached剖析

2017-05-21

聊天室小程序

聊天室小程序

2017-05-08

用TCPIP进行网际互联第一卷

2017-04-09

UNIX网络编程第二卷

2017-04-03

stack的实现

stack如何实现

2016-12-20

stack小应用----表达式求值

这计算器的实现原理 实现简单的符号运算 + - × /( )

2016-12-20

stack小应用 迷宫求解

迷宫求解

2016-12-20

空空如也

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

TA关注的人

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