C++实现容器中的map

C++中map是根据红黑树来实现的 map的作用: 自动建立Key - value的对应。key 和 value可以是任意你需要的类型。  根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。  快速插入K...

2018-08-31 16:01:05

阅读数 1399

评论数 0

C++实现红黑树

一. 红黑树的概念:        红黑树是一棵二叉搜索树,它在每个结点上增加了一个存储位来表示结 点的颜色,可以是red或者black,通过对任何一条从根节点到叶子结点简 单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而 近似平衡,而且在实际应用中发现红黑树性能确实比AVL树...

2018-08-30 21:35:05

阅读数 52

评论数 0

C++实现AVL树的左单旋,右单旋,左右双旋,右左双旋

一. AVL树的概念: 一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树:   1、它的左右子树都是AVL树 ; 2、左子树和右子树高度之差(简称平衡因子)的绝对值不超过1(-1、0、1); 二. 平衡化旋转: 如果在一棵原本是平衡的二叉搜索树中插入一个新节点,可能造成不平衡,此时...

2018-08-28 17:06:03

阅读数 177

评论数 0

C++递归及非递归实现二叉搜索树的创建,插入,查找,删除

一.非递归实现二叉搜索树的插入,查找,删除 #include<iostream> using namespace std; template<class T> struct BSTreeNode{ BS...

2018-08-27 16:43:08

阅读数 808

评论数 0

线索化二叉树,前序中序后序遍历(递归和非递归实现)

#include<iostream> #include<string.h> using namespace std; enum PionerInfo { LINK,THREAD }; template&...

2018-08-26 17:15:48

阅读数 668

评论数 0

C++ 最小堆的实现及基本操作

一.创建最小堆: template<class T> class Heap{ public: Heap() {} Heap(const T* array,size_t size) { v.resize(size); for (size...

2018-08-26 17:03:51

阅读数 399

评论数 0

二叉树的基本操作,以及相关面试题(C++实现)

【面试题】 1、创建二叉树 #include<iostream> using namespace std; template<class T> struct BinTreeNode{ BinTreeN...

2018-08-24 17:58:00

阅读数 413

评论数 0

C++队列的实现

List.h文件 #include<iostream> using namespace std; template<class T> struct Nodetype{ Nodetype(const T&...

2018-08-10 17:58:31

阅读数 320

评论数 0

C++实现带头节点的双向循环链表模板

#include<iostream> using namespace std; template<class T> struct Nodetype{ Nodetype(const T&am...

2018-08-09 22:41:20

阅读数 84

评论数 0

C++实现String类

class String{ public: String(const char* str = "") { if (NULL == str){ _str = new char[1 + 4]; _str += 4; *_str = '\...

2018-08-09 22:39:31

阅读数 37

评论数 0

C++实现日期类

#include<iostream> using namespace std; class Date{ public: Date(int year=1996,int month=7,int day=30) : _year(year) , _...

2018-08-09 22:34:46

阅读数 160

评论数 0

C++实现顺序表模板

#include<iostream> #include<assert.h> #include<string.h> using namespace std; te...

2018-08-09 22:28:20

阅读数 176

评论数 0

C++实现顺序表

#include<iostream> #include<string.h> #include<assert.h> using namespace std; typ...

2018-08-09 22:26:27

阅读数 33

评论数 0

数据结构中稀疏矩阵相加

实现代码:#ifndef TUP_H_INCLUDED #define TUP_H_INCLUDED #define M 6 #define N 7 #define MaxSize 100 //矩阵中非零元素最多个数 typedef int ElemType; typedef...

2018-04-18 16:09:52

阅读数 310

评论数 0

Linux中基础IO

一、open/read/write/close等文件相关系统调用open、read、write、close等系统函数称为无缓冲I/O(Unbuffered I/O)函数,用户程序在读写文件时既可以调用C标准I/O库函数,也可以直接调用底层的Unbuffered I/O函数.那么在讨论Linux环境...

2018-04-16 20:38:22

阅读数 52

评论数 0

Linux中信号的使用

什么是信号信号是硬件终端的软件模拟,用来表示程序运行中发生的各种事件。如何主动的发送信号使用kill命令使用kill函数使用alarm()向调用进程发送SIGALRM信号如何捕获信号一般的捕获信号的步骤是:创建一个信号集合向信号集合中添加想要捕获的信号向内核登记信号处理器等候捕捉信号SIGHUP信...

2018-04-11 21:20:49

阅读数 61

评论数 0

Linux下实现pipe

管道:管道是Unix中最古老的进程间通信的形式;我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”;匿名管道:#include<unistd.h> 功能: 创建一个无名管道 原型: int pipe(int fd[2]); 参数: fd:文件描...

2018-04-10 20:09:35

阅读数 241

评论数 0

进程

一. 进程的基本概念:1. 程序的一个执行实例,正在执行的程序;2. 担当分配系统资源的实体;二.进程创建,等待和终止:1.进程的创建:fork函数:在Linux中fork函数是非常重要的,他从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。fork函数原型:#include&...

2018-04-09 20:30:27

阅读数 45

评论数 0

数据结构中二叉搜索树

一.  二叉搜索树的概念:二叉搜索树又称二叉排序树,二叉排序树有如下性质:1.若他的左子树不为空,那么他的节点数小于他的根节点数;2.若他的右子数不为空,那么他的节点数大于他的根节点数;3.他的左右子数也分别为二叉搜索树;二.  二叉搜索树的基本操作:1.搜索:若根节点不为空   如果根节点key...

2018-03-15 16:30:08

阅读数 35

评论数 0

C++数据结构中算法的使用

一.时间复杂度:时间复杂度其实就是一个函数进行运算时执行的基本操作的次数;运算分类的分析:1.最坏的情况:任意输入规模的最大次数;2.平均情况:任意输入规模等与平均次数;3.最好的情况:任意输入规模的最少次数;当然在实际情况下我们通常考量的最大运行次数,也就是任意输入规模,算法运行的最长时间,例如...

2018-02-24 14:30:59

阅读数 33

评论数 0

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