
数据结构
007havegone
这个作者很懒,什么都没留下…
展开
-
二叉树的遍历 C/C++语言实现
目录1、二叉树的定义2、二叉树的遍历2.1、先序遍历递归版非递归版2.2、中序遍历递归版非递归版2.3、后序遍历递归版非递归版2.4、层序遍历3、二叉树的创建4、二叉树的销毁1、二叉树的定义二叉树包括数据域,左孩子,右孩子。如果要要方便找双亲节点还可以添加一个指针(这里没有)typedef int TElemType;type...原创 2019-05-27 17:22:24 · 808 阅读 · 0 评论 -
算法导论 练习10.4-5二叉树的遍历
10.4-5 给定一个n结点的二叉树,写出一个O(n)O(n)O(n)时间的非递归过程,将该树的每一个结点的关键字输出。要求除该树本身的存储空间外只能使用固定量的额外存储空间,且中过程中不得修改该树,即使是暂时的修改也不允许。要完成O(1))O(1))O(1))的空间内遍历该树,需要每个结点需要能访问其父节点进行回溯。struct Tree{ Tree *parent; Tr...原创 2019-08-08 15:48:52 · 501 阅读 · 0 评论 -
算法导论 练习12.1
12.1-1 对于关键字集合{1,4,5,10,16,17,21}\{1,4,5,10,16,17,21\}{1,4,5,10,16,17,21},分别画出高度为2、3、4、5和6的二叉搜索树。这里说明一下:算法导论中定义的高度是根节点到叶节点的最大距离高度为2: 高度为3: 高度为4: 10 10 ...原创 2019-08-09 01:05:32 · 773 阅读 · 0 评论 -
算法导论 练习14.1-7
14.1-7 说明如何在O(nlgn)O(nlgn)O(nlgn)时间内,利用顺序统计树对大小为nnn的数组中的逆序对(见思考题2-4)进行计树。这道题和算法导思考题论2-4一致,当时采用了归并排序和线段树进行解决,在另外一篇博客中给出了题解。算法导论 思考题2-4这里我们将采用书中的顺序统计树(order-statistic tree)来解决。其实本质上和线段树类似,都是采用一种支持O(lg...原创 2019-08-20 18:13:27 · 403 阅读 · 2 评论 -
算法导论 练习12.2
12.2-1 假设一棵二叉搜索树中的结点在1到1000之间,现在想要查找值为363得到结点,下面序列那个不是查找过的序列。a. 2,252,401,398,330,344,397,3632,252,401,398,330,344,397,3632,252,401,398,330,344,397,363。b. 924,220,911,244,898,258,362,363924,220,911,...原创 2019-08-12 11:17:49 · 812 阅读 · 0 评论 -
算法导论 练习12.3
12.3-1 给出TREE-INSERT过车过程的一个递归版本//实现1TREE-INSERT(T,z) if T.root = NIL //空树 T.root = z z.p = NIL else //非空,递归查找合适位置 TREE-INSERT-RECURSIVE(T.root,z)TREE-INSERT-RECU...原创 2019-08-12 17:59:20 · 809 阅读 · 0 评论 -
算法导论 思考题6-3(Young氏矩阵)
思考题6-3(Young氏矩阵)在一个m×nm\times nm×n的Young氏矩阵(Young tableau)中,每一行的数据都是从左到右排序的,每一列的数据都是从上到下排列的。Young氏矩阵中也会存在一些为∞\infin∞的数据项,表示那些不存在的数据。因此,Young氏矩阵可以用来村出r≤mnr \leq mnr≤mn个有限的数。a. 画出一个包含元素{9,16,3,2,4,8,5,...原创 2019-08-22 00:37:17 · 482 阅读 · 0 评论 -
数据结构-红黑树
文章目录数据结构-红黑树1、红黑树简介红黑树的性质红黑树结点红黑树的5个性质2、红黑树的操作旋转插入操作情况 1:z的叔结点y为红色情况 2:z的叔结点y为黑色的且z是一个右孩子情况 3:z的叔结点y为黑色的且z是一个左孩子删除操作情况 1:x的兄弟结点w是红色的情况 2:x的兄弟结点w是黑色的,而且w的两个子结点都是黑色的情况 3:x的兄弟结点w是黑色的,w的左孩子是红色的,w的右孩子是黑色的。...原创 2019-08-18 15:08:05 · 540 阅读 · 0 评论