博客专栏  >  编程语言   >  数据结构学习之路

数据结构学习之路

程序=算法+数据结构,学好数据结构非常有必要。此专栏记录c++语言描述数据结构的学习历程,你我共同进步。

关注
8 已关注
26篇博文
  • 数据结构实验4(排序算法的实现及性能分析)

    实现了选择排序, 插入排序, 冒泡排序, 快速排序, 改进后的快速排序, 以及两路合并排序. 通过随机函数随机生成100个数, 进行各种排序, 记录排序开始时间以及结束时间, 计算消耗的时间来比较算...

    2015-12-16 21:22
    2399
  • 拓扑排序的实现_TopoSort

    拓扑排序是求一个AOV网(顶点代表活动, 各条边表示活动之间的领先关系的有向图)中各活动的一个拓扑序列的运算, 可用于测试AOV 网络的可行性. 整个算法包括三步: 1.计算每个顶点的入度, 存...

    2015-12-14 23:55
    2185
  • 数据结构实验3(飞机最少环城次数问题)

    使用图算法解决应用问题: 设有n个城市, 编号为0 ~ n - 1, m条航线的起点和终点由用户输入提供. 寻找一条换乘次数最少的线路方案. 使用有向图表示城市间的航线, 只要两城市之间有航班, 则...

    2015-12-13 18:14
    2942
  • 数据结构实验3(图的DFS和BFS实现)

    实现邻接矩阵和邻接表两种不同存储结构上实现图的基本运算, 在MGraph类中扩充增加DFS()和BFS()函数. 包含的运算: 插入一条边, 删除一条边, 查询边是否存在, 图的深度优先搜索和广度优...

    2015-12-13 17:51
    2383
  • 数据结构实验2(二叉链表实现二叉树的基本运算)

    包含的二叉树运算: 删除一个二叉树, 求一颗二叉树的高度, 求一颗二叉树中叶子结点数, 复制一颗二叉树, 交换一颗二叉树的左右子树, 自上到下, 自左到右层次遍历一颗二叉树. 增加相关功能完善即可...

    2015-12-13 17:36
    2991
  • 图的邻接表实现_LGraph

    邻接表是图的另一种有效的存储表示方法. 每个顶点u建立一个单链表, 链表中每个结点代表一条边, 为边结点. 每个单链表相当于 邻接矩阵的一行. adjVex域指示u的一个邻接点v, nxtArc指...

    2015-12-08 09:48
    3082
  • 图的邻接矩阵实现_MGraph

    邻接矩阵有两种, 不带权图和网的邻接矩阵. 不带权图的邻接矩阵元素为0或1, 网的邻接矩阵中包含0, INF, 和边上的权值, 权值类型T可 为整型, 实型. 三元组(u, v, w)代表一条边, ...

    2015-12-08 09:11
    3596
  • 散列表ADT_HashTable

    M为除留余数法的模数, ht是指向动态生成的一维数组指针, empty是标志数组的指针. 成员函数Find()在散列表中搜索与x关键字相同的元素. 若表中存在与x关键字值相同的元素, 则将其复制给x...

    2015-12-01 01:03
    3011
  • 二叉搜索树ADT_BSTree

    二叉搜索树或是一颗空二叉树, 或是具有以下性质的二叉树: 1.若左子树不为空, 则左子树上所有结点的关键字值均小于根结点的关键字值. 2.若右子树不为空, 则右子树上所有结点的关键字值均大于根结点...

    2015-11-18 17:47
    5206
  • ListSet_对半搜索的迭代算法

    递归函数效率低, 常使用相应的迭代算法. mid, left, right均为元素下标, 如果当前表不为空, 则令x与l[mid]比较. 若两者相等, 则搜索成功. 若前者小于后者, 则继续查找...

    2015-11-04 16:31
    1789
  • ListSet_对半搜索的递归算法

    对半搜索是一种二分搜索, 将表划分为长度几乎相等的两个子表. 共有函数Search()调用私有函数BSearch(). 而后递归调用BSearch()函数实现对有序表的对半搜索. mid, lef...

    2015-11-04 16:29
    1897
  • ListSet_有序表搜索

    一个有序表可以看成是一个已按关键字排序的有序集. 表的最后添增设了一个被称作哨兵的元素, 关键字为INF. 若表长为n, 需要在l[n]位置存放哨兵元素. 增加哨兵元素以后, 在for循环中不再 需要...

    2015-11-04 00:09
    1815
  • ListSet_无序表搜索

    无序表搜索就是一个个的遍历, 从头开始逐个检查, 直到表中关键字值等于给定关键字值, 则查找成功. 或者查完整个表, 查找失败为止. 实现代码: #include "iostream" #inclu...

    2015-11-03 23:53
    1879
  • 数据结构实验2(设计哈弗曼编码和译码系统)

    设计一个哈弗曼编码和译码系统, 要求如下: B——建树:读入字符集和各字符频度,建立哈夫曼树。 T——遍历:先序和中序遍历二叉树。 E——生成编码:根据已建成的哈夫曼树,产生各个字符的哈夫曼编...

    2015-11-02 23:54
    4192
  • 堆ADT_Heap

    一个大小为n的堆是一棵包含n个结点的完全二叉树, 该树中每个结点的关键字值大于等于其双亲结点的关键字值.  堆顶: 二叉树的根, 它的关键字是整棵树上最小的.(最小堆) 建堆运算时, CreatH...

    2015-10-27 11:37
    2763
  • 优先队列ADT_PrioQueue

    如果定义最小值为最高优先权, 使用最小堆为例.  每次入队新元素都要向上调整, 同理, 弹出优先权最高的元素时要向下调整, 使之成为堆. 将新元素插入p[j]后的调整工作由AdjustUp()函数...

    2015-10-25 22:24
    3259
  • 二叉树ADT_BinaryTree

    二叉树是结点的有限集合, 该集合或者为空集, 或者是由一个根和两棵互不相交的称为该根的左子树和右子树的二叉树组成. 二叉树可以为空集, 可以有空二叉树, 也可以有空的左子树 或/和 又子树. 二叉树的...

    2015-10-25 10:03
    4254
  • 数据结构实验1(一元多项式的相加和相乘)

    实验要求: 1.设计带表头的结点的单链表表示多项式类。 2.在该类上增加成员函数void PolyMul(Polynominal &r),并重载*运算符。 3.实现菜单驱动的main函数,测试多...

    2015-10-07 19:48
    3860
  • 数据结构实验1(顺序表逆置以及删除)

    在顺序表类SeqList中增加成员函数void Reverse(),实现顺序表的逆置。 在顺序表类SeqList中增加成员函数bool DeleteX(const T &x),删除表中所有元素值等于x...

    2015-10-07 15:53
    3426
  • 稀疏矩阵ADT_SeqTriple

    压缩存储稀疏矩阵的非零元素,存储非零元素的行号,列号,值。用一个三元式(row, col, value)唯一表示,可以按行排序或者列排 序,成为行三元组或列三元组。 实现代码: #include ...

    2015-10-01 19:50
    2678
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部