算法/数据结构
文章平均质量分 82
iceburg-blogs
北京邮电大学计算机技术研究生,主要研究方向为自然语言处理,信息抽取,知识图谱。
展开
-
JavaSE集合框架-01-集合框架体系及表数据结构
Collection接口:集合可以看做一种容器,即存储各种对象的容器,容器的实现方式有很多种(list,set),每种存储数据的方式(即数据结构)都有区别,但是它有很多共性的功能(增删改查等)。对集合的各种实现的共有方法进行抽取,可以得到一个金字塔形的集合框架,金字塔的最顶端就是Collection接口Collection接口中含有的方法:Collection接口含有的方法,所有的原创 2017-09-28 23:01:28 · 274 阅读 · 0 评论 -
设计模式-04-行为型模式详解
承接上一篇博客设计模式-03-结构型模式详解,本篇讨论结构型模式的相关内容一.责任链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理为止。代码举例:#include <iostream>#include <string>#include <vector>using namespace std;//请求原创 2018-02-28 23:34:35 · 167 阅读 · 0 评论 -
设计模式-02-创建型模式详解
根据系列博客的第一篇设计模式-01-设计模式简介及分类对24设计模式的分类,本文对第一类—–创建型模式,进行举例分析一.工厂模式修正了简单工厂模式中不遵守开放-封闭原则。工厂方法模式把选择判断移到了客户端去实现,如果想添加新功能就不用修改原来的类,直接修改客户端即可代码举例:#include <string>#include <iostream>using namespace std;//实例原创 2018-02-28 23:22:10 · 250 阅读 · 0 评论 -
Java设计模式-装饰者设计模式
一.装饰者设计模式简介1.装饰者设计模式的概念:装饰模式指的是在不改变原类文件和不使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。IO体系中用到了此设计模式2.装饰者设计模式举例:public class PersonDemo { public static void main(String[] args) { Person p原创 2017-10-02 18:27:02 · 440 阅读 · 0 评论 -
经典算法问题-01-八皇后
八皇后问题问题描述:八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 简化问题:由于八皇后问题的正确答案为92种排列方案,由于正确的棋子放置方式实在太多,难以一一列举,所以先简化问题,解决四皇后的排列,即将8×8棋局改为4×4棋局,规则不变建立模型:要使用C++解决这个原创 2017-11-17 22:13:32 · 5745 阅读 · 5 评论 -
数据结构-03-队列
队列1.队列简介:队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,不能再任意位置插入和删除。 进行插入操作的端称为队尾,进行删除操作的端称为队头。2.使用顺序表实现队列结构:2.1 队列类的定义:template<typename Type>class SequenceQueue {public: SequenceQueue(原创 2017-11-07 20:18:25 · 226 阅读 · 0 评论 -
数据结构-02-链表数据结构之双链表和循环链表
上篇博客分析了单链表:数据结构-01-链表数据结构之单链表,这篇博客将分析链表的其他几种常见形式 本文中的所有代码均在github上的项目中:List_DataStructure 双链表双链表也叫双向链表,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 双链表是最常用的一种链表形式,实际应用中双链表一般原创 2017-11-07 18:59:42 · 301 阅读 · 0 评论 -
数据结构-01-链表数据结构之单链表
本文中的所有代码均在github上的项目中:List_DataStructure 一.链表:1.1 链表的概念:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。 每个结点包括两个部分内容:一是存储数据元素的数据域,另一个是存储其他结点地址的指针域(不同种类的链表存储的结原创 2017-11-07 15:00:08 · 368 阅读 · 0 评论 -
算法-01-二分查找/插值查找
一.顺序查找在链表中常用,适合用来解决小规模数据,比较灵活简便。当数据较多时非常不推荐,查询速度非常慢。二. 二分查找2.1 二分查找简介:通过将一组有序数据不断地分成两部分以缩小查询区间的查询方法 使用条件:数据有序2.2二分查找的特点:二分查找法优点是比较次数少,查找速度快,平均性能好,占用系统内存较少2.3 二分查找的查询方式及其原理:二分查找的查询步骤:步骤一:检查表中间数据是否是目标数据原创 2017-11-06 19:21:19 · 770 阅读 · 0 评论 -
设计模式-03-结构型模式详解
承接上一篇博客设计模式-02-创建型模式详解,本篇讨论结构型模式的相关内容一.适配器模式双方都不适合修改的时候,可以考虑使用适配器模式代码举例://例一#include <iostream>using namespace std;class Target{public: virtual void Request() { cout<<"普通的请求"<<endl;原创 2018-02-28 23:29:00 · 229 阅读 · 0 评论