XHfight
码龄8年
关注
提问 私信
  • 博客:125,117
    125,117
    总访问量
  • 49
    原创
  • 852,167
    排名
  • 63
    粉丝
  • 0
    铁粉

个人简介:心向阳光, 绚丽绽放

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2016-05-29
博客简介:

XHfight的博客

查看详细资料
个人成就
  • 获得68次点赞
  • 内容获得21次评论
  • 获得208次收藏
创作历程
  • 1篇
    2017年
  • 49篇
    2016年
成就勋章
TA的专栏
  • c语言练习
    5篇
  • c语言
    29篇
  • 数据结构
    15篇
  • c++
    6篇
  • 剑指offer
    1篇
  • 项目
    1篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

二叉树练习题

1.将搜索二叉树转换成有序的双向链表思路:由搜索二叉树的特点(左    中序递归,记录前一个结点(初始为空),前一个结点的右指向当前结点,当前结点的左指向前一个结点。Node* ToOrderedDoubleList() //将搜索二叉树转换成有序的双向链表(递归){ Node* prev = NULL; Node* head = _root; while(head &&
原创
发布博客 2017.01.03 ·
2236 阅读 ·
1 点赞 ·
1 评论 ·
6 收藏

排序算法总结

1.
原创
发布博客 2016.11.28 ·
653 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

STL中map和set详解

在STL中有这两个容器set和map,它们的特性都是:所有元素都会根据元素的键值自动被排序。下面来介绍一下这两个容器和与之相关的几个容器。一、set和map1.set和map的区别和联系:联系:它们的底层实现都是红黑树。区别:set是key形式的,set元素的键值(key)就是实值(value),实值就是键值。而map是key/value形式的,map的所有元素都是pair,同
原创
发布博客 2016.11.19 ·
1719 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【平衡搜索树】AVL树

【前言】:之前学过了二叉搜索树,但是二叉搜索树有一个很大的缺陷,就是当当原本的数据有序或者接近有序的时候,这棵树的高度就为N(假设原本的数据个数为N),那么在搜索的时候它的时间复杂度(这里考虑最坏情况下的)就为O(N), 搜索的效率就比较低。那么,为了改进这个缺陷,我们就尽量让这棵搜索树变得比较平衡,降低它的高度,这样就可以提高它的搜索效率。AVL树一、定义:AVL树又称为高度平衡的二
原创
发布博客 2016.11.10 ·
604 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【搜索树】二叉搜索树

二叉搜索树的实现:BinarySearch.h#pragma once#include using namespace std;template struct SearchBinaryTreeNode{ K _key; // 关键字(唯一) V _value; SearchBinaryTreeNode* _left; SearchBinaryTreeNode* _rig
原创
发布博客 2016.11.06 ·
433 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

堆实现 及 堆排序

1.Heap.h#pragma once#include #include #include using namespace std;template struct CmpGreat //建大堆{ bool operator()(const T& data1, const T& data2) { return data1>data2; }};template
原创
发布博客 2016.11.01 ·
436 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【二叉树】线索化二叉树

#pragma once#include #include using namespace std; enum PointerTag{ LINK, THREAD,};templatestruct BinaryTreeNode_Thr{ T _data; BinaryTreeNode_Thr* _left; BinaryTreeNode_Thr* _right;
原创
发布博客 2016.10.26 ·
465 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【二叉树】二叉树遍历及基本功能实现

二叉树的基本操作及前,中,后,层序遍历的实现#pragma once#include #include #include using namespace std;template struct BinaryTreeNode{ T _data; BinaryTreeNode* _left; BinaryTreeNode* _right; BinaryTreeNode(c
原创
发布博客 2016.10.24 ·
608 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【c++】析构函数中delete this指针

在析构函数中delete this指针,会产生什么样的结果呢?先看看下面这段代码,想想运行结果。#include using namespace std;class A{public: A() { cout<<"A()"<<endl; } ~A() { cout<<"~A()"<<endl; delete this; }};int main(){
原创
发布博客 2016.10.22 ·
6482 阅读 ·
6 点赞 ·
2 评论 ·
17 收藏

【栈应用】迷宫问题

迷宫问题:给定一个迷宫的入口,找出迷宫的一条通路。【解决办法】1.迷宫放在一个文件里,我们将迷宫读取出来存储在一个二维数组中, 用'0'来表示通路,'1'表示不通。2.每次探测当前位置的上下左右,如果是通路,压栈,继续探测;如果不是通路,从栈中弹出,回溯到上一个走过位置。3.利用二维数组下标的界限来判断是否找到出口。【代码】1.Maze.h#pragma onc
原创
发布博客 2016.10.22 ·
1182 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

【矩阵】对称矩阵及稀疏矩阵的压缩存储

1.稀疏矩阵//稀疏矩阵及其压缩存储#pragma once#include #include using namespace std;templatestruct Triple{ size_t _r; size_t _c; T _value; Triple(size_t row = 0, size_t col = 0, const T& value = T())
原创
发布博客 2016.10.17 ·
1201 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【数据结构】广义表的实现

【前言】学完了顺序表,链表这些线性的数据结构,现在开始进入非线性的数据结构了。难度也比线性结构更大,本篇文章对广义表这种数据结构进行介绍并附上其实现的代码,广义表的实现主要应用递归,通过广义表可以更加理解和灵活使用递归,希望能给学习这块知识的朋友们带来帮助。一、广义表概念广义表是线性表的推广,是一种非线性的数据结构,也有人称其为列表。举几个例子:(1)A=()  //A是一
原创
发布博客 2016.09.24 ·
2326 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

【栈和队列】一个数组实现两个栈

学习了栈和队列的基本知识后,我们要利用这些基本知识实现出更多情况的栈和队列,下面通过一些面试题使我们更灵活的设计和使用栈和队列。1.利用一个数组实现两个栈思路:我们已经学过了栈和数组,数组是一块固定大小的存储空间,栈的栈底是固定的,通过栈顶来push,pop元素。(栈顶top指向栈顶元素)通过上面的图片,就能很清晰的看到,我们要用一个数组实现两个栈的话,数组的两
原创
发布博客 2016.09.17 ·
1362 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

【c++知识归纳】继承与多态(二)

在继承与多态(一)中简单介绍了继承与多态的基础知识,本文将从内存中深入理解c++的继承与多态。本文我选用了较低版本的IDE:【windows 10】系统的vs2008,因为高版本的处理比较复杂,为了看的更清楚,我们选择这个较低版本的编译器。1.虚函数表(虚表)class Base{public: Base() :_b(1) {} virtual void fun(
原创
发布博客 2016.08.26 ·
659 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

【c++知识归纳】继承与多态(一)

c++是基于面向对象的编程语言,面向对象的三大特性为:封装、继承和多态。本文将我对继承与多态的理解进行了总结归纳,这部分内容对于学习c++编程语言是非常重要的,文章加入我的个人理解,希望能给大家带来帮助,如果有问题欢迎大家指出。一、继承1.什么是继承?为什么有继承?通过继承将有共同部分的、相互联系的类构成一种层次关系,共同部分组成的类一般在最顶端称为基类(父类),其他类直接或间
原创
发布博客 2016.08.24 ·
3411 阅读 ·
4 点赞 ·
0 评论 ·
10 收藏

git介绍及使用教程

前言:版本控制系统是一种记录一个或若干文件内容变化,以便日后查看特定版本修订情况的系统,分为三大类:本地版本控制系统,集中化版本控制系统和分布式版本控制系统。今天我们来学习使用一种分布式版本控制系统——git。一、git的功能简介:1.记录文件的所有历史变化2.随时可恢复到任何一个历史状态3. 多人协作开发或修改4.错误恢复5. 多功能并行开发二、g
原创
发布博客 2016.08.05 ·
594 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

【c语言】函数指针的用途

很多初学者学函数指针的时候都会想着学这个到底有什么用嘛,搞这么复杂。哈哈,其实它的存在必然有它的用途喽。下面介绍一下它的两个主要用途:(1)转移表  (利用函数指针数组实现)(2)回调函数机制  (利用函数指针实现,典型应用:qsort快排)下面我们就通过使用来熟悉一下它的这两个用途吧。1.转移表的应用简单计算器的实现#include #include
原创
发布博客 2016.08.04 ·
2322 阅读 ·
2 点赞 ·
0 评论 ·
17 收藏

c语言函数的可变参数列表

一、功能:为什么有可变参数列表呢?它可以实现一个神奇的功能:让一个函数在不同的时候可以接受不同数目的参数。二、实现要求:要实现这样的函数,我们需要使用一个va_list类型的变量和三个宏共同配合来访问我们的参数。要使用它们需要引用头文件#include 下面对他们做一下简单的介绍吧!va_list   其实就是 char*类型下面主要介绍一下这三个为宏:va
原创
发布博客 2016.08.03 ·
962 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

c语言字符串操作函数

字符串:由零个或多个字符组成的有限序列。在C语言库函数中,对字符串操作有一系列的函数。下面我们就自己模拟实现一些应用比较广泛的字符串操作函数。1.字符串拷贝函数
原创
发布博客 2016.07.19 ·
657 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

【c++巩固练习】c++实现日期计算器、日期万年历(日期类)

日期计算器的功能:1.可以计算两个日期之间相距多少天。例:2016.5.1-2016.4.1 =  302.可以计算一个日期经过n天后的那个日期是什么。例:2016.5.1+40 = 2016.6.10代码实现如下:(环境:vs2013   语言:c++)1.Date.h#pragma once#include using namespace std;class
原创
发布博客 2016.07.08 ·
5324 阅读 ·
5 点赞 ·
1 评论 ·
26 收藏
加载更多