博客专栏  >  编程语言   >  数据结构与算法设计C++描述

数据结构与算法设计C++描述

利用C++语言描述常用的数据结构,包括:线性表、链表、间接寻址、模拟指针、队列、树以及常用的算法设计方法(贪婪算法、分而治之算法、动态规划、回溯和分枝定界)。

关注
2 已关注
14篇博文
  • 数据结构与算法C++描述(14)---二叉搜索树

    1、二叉搜索树的概念二叉搜索树是一棵可能为空的二叉树,一棵非空的二叉搜索树有满足如下特征: 二叉树中所有的键值都是唯一的; 根节点所有左子树的键值(如果有的话)小于根节点的键值; 根节点所有右子树的键...

    2017-11-03 21:03
    238
  • 数据结构与算法C++描述(13)---竞赛树及其在箱子装载问题中的应用

    1、竞赛树的相关概念一般将竞赛树分为赢者树和输者树。所谓赢者树,就是对于n名选手,赢者树是一棵含n个外部节点,n-1个内部节点的完全二叉树,其中每个内部节点记录了相应赛局的赢家。同理,对于输者树,每个...

    2017-11-01 20:48
    225
  • 数据结构与算法C++描述(12)---堆及最大堆

    1、有关堆的相关概念 最大堆(最小树):最大(最小)的完全二叉树。 最大树(最小树):每个节点的值都大于(小于)或等于其子节点(如果有的话)值的数。注意,最大(小)数不一定是二叉树。 完全二叉树:从满...

    2017-10-30 19:22
    301
  • 数据结构与算法C++描述(11)---树及二叉树

    1、 树的相关概念1.1 树的定义根据文献[1],树定义为:树(tree)t是一个非空的有限元素的集合,其中一个元素为根,余下的元素(如果有的话)组成t的子树(subtree)。 树一般用来描述具有...

    2017-10-28 09:01
    313
  • 数据结构与算法C++描述(10-插曲)---函数名作形参

    在文献[1]中,描述二叉树时利用了函数名作为形参。在此加以说明与解释。1.函数参数的传递方式我们都知道,函数参数的传递一般有:值传递、指针传递和引用传递。先来回顾一下: 值传递时,先临时分配一块内存,...

    2017-10-26 11:25
    372
  • 数据结构与算法C++描述(9)---字典

    1.字典的概念字典是一些节点的集合,每个节点包含数据域和key(键值)域。字典可以通过公式化描述或链表描述的方式创建。本文将通过链表描述的方式创建字典,字典的键值是依次递增的,并对字典进行如下操作: ...

    2017-10-25 10:25
    286
  • 数据结构与算法C++描述(8)---队列

    1、队列的概念和堆栈一样,队列也是一种特殊的线性表。与堆栈不同的是,队列的插入和删除操作分别在线性表的两端进行,是一种先进先出的线性表。将添加新元素的那一端称为队尾(rear),删除元素的一端称为队首...

    2017-10-23 21:30
    249
  • 数据结构与算法C++描述(7)---堆栈及其在“火车车厢重排问题”中的应用

    本文首先介绍堆栈的相关概念,接着利用C++语言实现堆栈类,最后利用堆栈来解决“火车车厢重排问题”。 1. 堆栈的概念参考文献[1]中对堆栈的解释:堆栈数据结构是通过对线性表的插入和删除操作进行限...

    2017-10-21 14:51
    472
  • 数据结构与算法C++描述(6)---稀疏矩阵

    1. 稀疏矩阵的概念当我们利用一个矩阵来描述一个实际问题时,往往矩阵中存在许多“0”值,如下图所示。试想,当矩阵维数非常大时,利用一个二维数组来存储此矩阵会浪费很多额外的空间。由此,在参考文献[1]中...

    2017-10-19 17:03
    343
  • 数据结构与算法C++描述(5)---模拟指针及模拟链表

    1、相关概念1.1、模拟指针的定义模拟指针可以理解为:在一个模拟空间中,存在一个指针数组,数组中的每个元素为指针类型,并且每个指针具有数据域和链接域(指向下一个数组中的指针)。1.2、模拟指针描述单链...

    2017-10-12 22:39
    98
  • 数据结构与算法C++描述(4)---链表

    上文“数据结构C++描述—线性表的基本操作”中所述的线性表是基于公式化描述来存储数据的,即它的存储位置之间满足一定的数学关系。而利用链表描述线性表时,某个元素的描述包含两部分:链接域(指向下一个或上一...

    2017-09-29 22:35
    85
  • 数据结构与算法C++描述(3)---间接寻址

    间接寻址就是线性表和链表的组合,它利用了线性表中的公式化描述,同时也利用了链表中的链接指针。。采用这种描述方法,可以保留公式化描述方法的许多优点——可以根据索引在ΘΘ( 1 )的时间内访问每个元素、可...

    2017-10-10 17:06
    95
  • 数据结构与算法C++描述(2)---数组

    1、数组的定义数据对象的每个实例都是形如(index,value)的数据对集合,其中任意两对数据的index值都各不相同。当每个数据对的index为一个唯一确定的值时,该数据对象被称为一维数组;当每个...

    2017-10-18 12:05
    183
  • 数据结构与算法C++描述(1)---线性表的基本操作

    本文将利用公式化描述的方法,借助于C++语言,建立线性表,实现线性表的创建、删除、元素插入、线性表的合并与拆分等操作。 文中所有代码皆上传至我的码云1、 线性表的定义在参考文献[1]中,对线性表有如...

    2017-09-15 10:57
    213
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部