数据结构与算法基础
文章平均质量分 78
总结本科课程中学习的最基础的数据结构和算法知识,代码均用C++实现
iceburg-blogs
北京邮电大学计算机技术研究生,主要研究方向为自然语言处理,信息抽取,知识图谱。
展开
-
算法-01-二分查找/插值查找
一.顺序查找在链表中常用,适合用来解决小规模数据,比较灵活简便。当数据较多时非常不推荐,查询速度非常慢。二. 二分查找2.1 二分查找简介:通过将一组有序数据不断地分成两部分以缩小查询区间的查询方法 使用条件:数据有序2.2二分查找的特点:二分查找法优点是比较次数少,查找速度快,平均性能好,占用系统内存较少2.3 二分查找的查询方式及其原理:二分查找的查询步骤:步骤一:检查表中间数据是否是目标数据原创 2017-11-06 19:21:19 · 769 阅读 · 0 评论 -
数据结构-01-链表数据结构之单链表
本文中的所有代码均在github上的项目中:List_DataStructure 一.链表:1.1 链表的概念:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。 每个结点包括两个部分内容:一是存储数据元素的数据域,另一个是存储其他结点地址的指针域(不同种类的链表存储的结原创 2017-11-07 15:00:08 · 367 阅读 · 0 评论 -
数据结构-02-链表数据结构之双链表和循环链表
上篇博客分析了单链表:数据结构-01-链表数据结构之单链表,这篇博客将分析链表的其他几种常见形式 本文中的所有代码均在github上的项目中:List_DataStructure 双链表双链表也叫双向链表,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 双链表是最常用的一种链表形式,实际应用中双链表一般原创 2017-11-07 18:59:42 · 301 阅读 · 0 评论 -
数据结构-03-队列
队列1.队列简介:队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,不能再任意位置插入和删除。 进行插入操作的端称为队尾,进行删除操作的端称为队头。2.使用顺序表实现队列结构:2.1 队列类的定义:template<typename Type> class SequenceQueue { public: SequenceQueue(原创 2017-11-07 20:18:25 · 226 阅读 · 0 评论 -
经典算法问题-01-八皇后
八皇后问题问题描述:八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 简化问题:由于八皇后问题的正确答案为92种排列方案,由于正确的棋子放置方式实在太多,难以一一列举,所以先简化问题,解决四皇后的排列,即将8×8棋局改为4×4棋局,规则不变建立模型:要使用C++解决这个原创 2017-11-17 22:13:32 · 5745 阅读 · 5 评论