自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 基于MYSQL的球员信息管理

MYSQL球员信息管理

2016-08-09 20:05:10 941

原创 stl部分容器学习及实现

//没有去写独立的空间配置器,只是写了一个简单的simple_alloc用来配合各个容器对内存管理的需求。 一 序列式容器。 1.vector. a.概念:拥有动态空间的数组 b.特点:和array唯一的区别就是vector随着元素的加入可以自动的扩展空间。 代码:http://blog.csdn.net/mosqquito_gao/article/details/

2016-03-12 15:31:18 316

原创 stl_set

//不允许相同值得set//#include<rb_tree.h>//#include<stl_function.h>template<class key , class Compare = less<key>>//默认状态下按递增排序class set{public: typedef key key_type; typedef key value_type; ty

2016-03-12 14:25:15 211

原创 stack与queue

1.stack#include<deque.h> template <class T,class Sequence = deque<T>>class stack{public: typedef typename Sequence::value_type value_type; typedef typename Sequence::size_type size_type;

2016-03-10 18:10:35 193

原创 rb_tree

#include<new>#include<stdlib.h>#include<cstddef>#include<utility> template <class T1, class T2>inline void construct(T1* p, const T2& value){ new (p)T1(value);}template <class T>inline void

2016-03-10 17:56:10 644

原创 STL_deque

#include<new>#include<stdlib.h>#include<cstddef>const size_t BufSiz = 512;size_t max(size_t a, size_t b){ if (a > b) return a; else return b;}template<class B1, class B2>

2016-03-03 18:40:27 232

原创 STL-list实现

#include<stdlib.h>#include<new>template <class T1, class T2>inline void construct(T1* p, const T2& value){ new (p)T1(value);}template <class T>inline void destroy(T * pointer){ pointer->

2016-03-01 20:05:14 222

原创 vector 实现

vector的实现。 内存申请和释放用了simple_alloc。#include<new>#include<stdlib.h>using namespace std;size_t max(size_t a, size_t b){ if (a > b) return a; else return b;}template <class F ,

2016-02-29 17:23:34 298

原创 图的遍历

1.DFS(深度优先遍历) DFS:假设图g的每一个节点都未被访问过,从顶点V出发依次访问它的临接顶点W,若W无临接节点则返回V并访问下一个临接节点W2。直到所有节点都被访问到。a.临接表的DFS 思路:在有向图临接表中,我们知道每一个顶点V后都依次连着它的临接顶点,那我们只要依次访问就好,并用递归来实现遍历全部。//邻接表实现图的建立和DFS#include<iostream>using

2016-01-14 13:56:22 296

原创 图的建立

1.图的建立 a.邻接链表表示法: 若一个无向图为(请忽略箭头 :)) 则建立后为 a b c d a 0 1 0 1 b 1 0 1 0 c 0 1 0 0 d 1 0 0 0 #include<iostream>#define MAX 100;#define MINFINITY 65535;using namespace std;typedef c

2015-12-14 20:57:06 603

原创 非常简单的汇编翻译器

上周一直在做一个学校的比赛,题目就是写一个翻译器把C代码翻译为汇编代码。 我设计思路是把C代码读入后,按“;”分割为语句然后识别关键词来分别变量和变量的赋值。最后发现我整个都在做对字符串的处理。也发现了自己很多原来忽略的地方。 函数关系图 思路图 因为学校要求只提供一个源文件所以我所有代码都写一起了比较丑陋。而且其中越写脑洞越大很多代码都是无用的- -。真正完成题目估计300行即可。//

2015-12-01 20:46:48 3598

原创 leetcode之数组指定位置间的数之和

题目: Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive.Example: Given nums = [-2, 0, 3, -5, 2, -1]sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRange

2015-11-15 22:17:14 270

原创 单链表实现队列

//单链表实现队列#include<new>#include<iostream>template <typename T> struct Node{ T data; Node * next;}; template <typename T> class Queue{ public: typedef Node<T> * PtrToQueue; pr

2015-11-15 21:01:45 337

原创 单链表实现栈

//链表实现栈 //用一个表头为s的链表实现,所有插入的节点都变为到s的下一个节点。 #include<new>#include<iostream>template <typename T> struct Node{ T data; Node * next;}; template <typename Type> class Stack{ public:

2015-11-15 20:41:18 224

原创 快速排序

快速排序是一种平均速度最后快的排序算法。 用到了分治算法的思想。由四部组成: 1.取数组A中任意一元素a,把a当作标记值。 2.从A【0】开始找大于a的值i,从A【length】向前开始找小于a的值j,若i在j前面则交换。直到第一次i的位置在j的位置后面。并把a与i交换。这样就确定了a的位置。 3.然后递归的排序a前面的数构成的数组和a后面元素构成的数组。选取标记值:

2015-11-11 21:01:04 226

原创 排序(插入,堆排序,归并)

void swap( int &a , int &b){ int t; t = a; a = b; b = t;}void InsertSort( int a[] , int n)//插入排序 { int i , p , tmp; for( p = 1 ; p < n ; p++ ) { tmp = a[p];

2015-11-03 20:54:56 311

原创 const

const:它指定一个语义约束,编译器会强制实施这个约束。它告诉编译器和程序员它所指定的值是应该保持不变的。 int a = 5; int b = 6; const int * p = &a;//*p是const的 int * const q = &a;//指针q是const的 q = &b;//错误 *p = b;//错误 *q = b;

2015-11-02 21:38:09 259

原创 优先队列(最小堆)

//优先队列(堆)用数组实现 #include<new>template <typename T>struct HeapNode{ int Capacity; int Size; T * Elements; };template <typename T> class PriorityQueue{ private: typedef struct

2015-10-29 20:39:38 457

原创 二叉平衡查找树

二叉平衡查找树:是带有平衡条件的查找树。 平衡条件:要求左右子树具有相同的高度。(最多差1) 平衡查找树比查找树多的操作(也是难点)为旋转。 旋转:旋转分为单旋转和双旋转。 单旋转:将拥有较高子树的第二层子节点调整为整个树的根节点。 双旋转:双旋转用于解决单循转不能解决的状况 如: 这种情况就要利用双旋转(两次单旋转构成) 其余操作就和查找树相同//AVL 树 带有平衡条件的

2015-10-27 20:37:02 286

原创 双向循环链表(为STL LIST 做准备)

简单介绍下链表:链表就是由任意N个节点组成的不连续的空间。节点由所存储数据和指向下一个节点的指针构成。struct list{ type data; struct list * next;};双向循环链表:每个节点由数据,指向上一个节点的指针,指向下一个节点的指针构成。并且尾节点的NEXT指针指向头节点。头节点的PREV指针指向尾节点。struct List{ T data

2015-10-20 21:10:47 358

原创 二叉搜索树

二叉搜索树(ADT):对于一个节点X,它的左子树中所有的值小于X节点的值,它的右子树中所有的值都小于X节点的值。 如图就是一个根为5的二查搜索树。它的先序遍历:5 2 3 7 6 中序遍历:2 3 5 6 7 后序遍历:3 2 6 7 5 主要操作:插入,删除,遍历。插入:插入操作比较简单,只要遍历节点去找插入值X,若找到X则什么都不做,否则把X插入所遍历的最后

2015-10-18 20:32:27 257

原创 vector源码学习1(未完)

vector:一个存有多个相同对象的集合。 vector和C中的数组的区别在于,vector都是动态的,他的大小可以增加。 vector就是一个类,要实现一个类,就先看看它需要具有什么功能。 1.定义和初始化(vector<> a()) 2.添加元素(push_back) 3.其他:empty(),size(),a[n],a1 = a2,//vector 的源代码摘录 template <

2015-10-15 19:23:46 246

原创 简单实现vector

#include<iostream>using namespace std;class my_vector{ private://三个指针分别指向第一元素,最后一个元素和空间的最后 int *start; int *end; int *end_of_storage; public: my_vector():star

2015-10-14 21:23:28 259

原创 SGI STL中的construct

SGL STL 中虽然有标准的allocate但是实际中使用的确是alloc 它们的主要区别就是alloc 不和allocate一样只是对new和delete进行封装。 new算式其实含有两段操作,1.配置内存,2构造队形。delete:1.析构对象,2.释放内存 在alloc就把中就把这两段操作分开为stl_construct.h(构造对象)和stl_alloc.h(分配内存) 下面就是s

2015-10-13 20:40:27 375

原创 SGI的标准的空间适配器 allocator

// SGI STL 配置器的实现#include <new>#include <cstddef>#include <cstdlib>#include <limits>#include <iostream>//#include <algobase>size_t max(size_t a, size_t b)//由于没找到algobase 头文件我自己完成了这个max { if(

2015-10-13 19:49:47 374

原创 ptrdiff_t学习

在学习STL源码时遇到了ptrdiff_t先看下我自己搞得测试ptrdiff_t的代码#include<iostream>#include<cstddef>#include<vector>using namespace std;int main(){ string s = "hello"; string::iterator sp = s.begin(); strin

2015-10-12 23:13:13 594

原创 STL之简单空间适配器实现

/* 简单的空间适配器实现 */ #include<new>#include<cstddef> //ptrdiff_t 保存两指针相减为long int ,size_t 记录大小的数据类型 #include<cstdlib> // exit()#include<climits> //UINT_MAX#include<iostream> // cerr 输出标准错误ostream对象n

2015-10-11 22:56:56 241

原创 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-10-11 22:55:17 221

空空如也

空空如也

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

TA关注的人

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