C++继承

我们在用C语言写代码的时候,一定希望重复性的代码越少越好,随着程序的组织越来越复杂,单纯靠main()函数中写功能代码会让代码越来越难以维护和扩展。所以我们函数来解决这个问题,一个函数就像一个小程序,可以从主函数中脱离出来,这使我们能够将复杂的任务划分为一个个简单、容易实现的小程序。从而来降低我们...

2018-08-31 23:11:47

阅读数 28

评论数 0

排序之希尔排序

提到希尔排序,我们得先来看看插入排序,因为希尔排序本身就是对插入排序的一种优化。 插入排序的基本思想:每一步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序的一组元素的合适位置上去,直到元素全部插完为止。 就像我们玩斗地主一样,接牌的时候,其实就是一种插入排序,每接一张牌,就会把牌放...

2018-08-31 10:30:49

阅读数 41

评论数 0

进程的地址空间

前面的很多次,文章里提到过很多次,程序地址空间是这样的: 之前提到过很多次,这就是我们常说的,4G地址空间。可是我们还说了,它并不是真正的内存 先看一段代码: #include <stdio.h> #include <s...

2018-08-27 16:17:40

阅读数 54

评论数 0

Linux之进程

进程和程序,通俗理解是这样的: 我们写的代码没有运行的时候它就叫做程序,我们把它运行起来后就叫做进程。 也就是说,进程是程序的一个执行实例,正在执行的程序。如果站在操作系统的角度上看,进程就是担当分配系统资源(CPU时间、内存)的实体。 描述进程PCB 进程信息是被放在一个叫做进程控制块的...

2018-08-27 12:08:01

阅读数 44

评论数 0

正则表达式匹配

问题描述: 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a&a...

2018-08-26 22:17:19

阅读数 43

评论数 0

C++实现MyList

上篇文章我们用C++封装了一个动态顺序表: https://blog.csdn.net/LSFAN0213/article/details/82082436 这次,我们用C++的方式来封装一个双向循环链表 与我们之前提到的单链表不同的是,双向循环链表的指针域中又多了一个指向前一个结点的pPr...

2018-08-26 20:04:30

阅读数 96

评论数 0

C++实现MyVector

用C++的方式去封装一个动态顺序表;在前面我们说过动态顺序表这种数据结构 动态顺序表入口:https://blog.csdn.net/LSFAN0213/article/details/81264576 下来直接上代码: #pragma once #include &lt...

2018-08-26 17:43:53

阅读数 124

评论数 0

在字符串中找出第一个只出现一次的字符,若没找到,就返回-1

题目描述: 输入字符串:asdfasdfo 输出:o 思路方法:我们利用哈希表来解决这个问题,我们遍历字符串,只要出现的字符就给哈希表里相应的位置+1,最后我们只用在哈希表里找到第一个是1的元素,就找到了字符串中第一次只出现一次的字符 下面试完整代码: #include &am...

2018-08-26 16:09:58

阅读数 61

评论数 0

翻转单词顺序列

问题描述: AAA公司来了一位新同事,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a ...

2018-08-26 15:44:28

阅读数 32

评论数 0

C++内存管理

在很早之前的文章里,那时候我们认为内存大致是这样的:(如果对栈帧结构不太明白的同学可以看一看) 入口地址:https://blog.csdn.net/LSFAN0213/article/details/80280494 到如今,我们眼里的内存应该是如下这个样子: 其中,栈又叫堆栈,非...

2018-08-25 21:06:18

阅读数 47

评论数 0

深入理解UDP/TCP协议

在之前的网络编程的博文里,我们简单了解了下UDP协议和TCP协议,这次我们主要对这两个协议进行深入的了解(其实是对TCP协议进行升入了解) https://blog.csdn.net/LSFAN0213/article/details/81537507 1.再来看看端口号 端口号标识了一个主...

2018-08-22 15:54:07

阅读数 606

评论数 0

初识C++ 类和对象3

再看构造函数: 前面已经了解过了构造函数,在创建对象的时候,编译器通过调用构造函数,给对象中各个成员一个合适的初始值 class Date { public: Date(int year,int month,int day) { _year = year; ...

2018-08-22 10:57:59

阅读数 33

评论数 0

C++初识:类和对象(2)

在之前的文章里,我们出初步了解了,什么是类,类如何定义,类的大小怎么计算等 https://blog.csdn.net/LSFAN0213/article/details/81698194 一个空类里面什么也没有,但是它并非是什么也没有,只要是类,它就有6个默认的成员函数: 1.构造函数 ...

2018-08-20 11:24:36

阅读数 28

评论数 0

根据后序和中序重建二叉树

题目描述: Given inorder and postorder traversal of a tree, construct the binary tree. Note: You may assume that duplicates do not exist in the tree. 根...

2018-08-19 22:21:58

阅读数 34

评论数 0

二叉树:找最近的公共祖先

TreeNode *Find(TreeNode *pRoot,TreeNode *pNode) { if(pRoot == NULL){ return NULL; } if(pRoot == pNode){ return pRoo...

2018-08-18 22:44:30

阅读数 115

评论数 0

求二叉树的镜像

如下一棵二叉树: 它的镜像二叉树为: 我们应该怎么操作,可以根据一颗二叉树得到它的镜像二叉树呢? 其实不难,我们先序遍历二叉树的结点,如果该结点有左右孩子,我们就交换它的左右孩子,直到我们把所有的非叶子结点都交换过了,那我们就得了该二叉树的镜像二叉树 void Mirror(Tr...

2018-08-18 22:20:40

阅读数 51

评论数 0

二茶树找最远距离

如下一颗二叉树: 最远距离为红色路径,如何求得一颗二叉树的最远距离? 上面这棵二叉树,我们可以用子问题的方法解决,找到左子树的最远距离,再找到右子树的最远距离,相加即可 但是有特殊情况,比如下面这棵树: 再来看这棵树,如果按照上面的思想,左子树的最远距离为3,右子树的最远距离为0,...

2018-08-18 21:14:27

阅读数 43

评论数 0

minimum_depth_binary tree

题目描述: Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nea...

2018-08-18 20:24:03

阅读数 30

评论数 0

实现一个函数,用来判断二叉树是不是对称的。注意:如果一个二叉树同此二叉树的镜像是一样的,我们就称这棵二叉树是对称的

struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NU...

2018-08-16 22:01:51

阅读数 41

评论数 0

按层打印二叉树

从上到下按层打印二叉树,同一层结点从左到右输出,每层输出一行 struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...

2018-08-16 21:54:51

阅读数 61

评论数 0

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