- 博客(16)
- 资源 (34)
- 收藏
- 关注
原创 稀疏矩阵的十字链表存储表示
除了用三元组顺序表来存储压缩矩阵,我们还可以用链表结构来存储,实际上后者应用更广泛,因为当非零元素的数目较大时,三元组的时间复杂度实在太高。链表结构中最常见的是十字链表,在十字链表中,稀疏矩阵每一行用一个带头结点的循环链表表示,每一列也用一个带头结点的循环链表表示。在这个结构中,除头结点外,每个结点都代表矩阵中的一个非零元素,它由5个域组成:行域(row),列域(col),数据域(data),向下域(down)和向右域(right)。
2014-10-29 21:35:49 3765
原创 史上最简明易懂非递归遍历二叉树算法
三种不同的遍历方式区别在于栈空间的释放时机和输出结点信息时机的不同:先序和中序遍历是在访问栈顶元素的右孩子(右子树)之前退栈,而后序遍历在访问右子树之后退栈;先序遍历是在某结点入栈时输出其信息,而中序和后序遍历是在该结点退栈时输出其信息。 无论是递归算法还是非递归算法,都遵循上述规则,二者可以一一对应。图示如下:
2014-10-29 14:59:02 5656
原创 稀疏矩阵的三元组顺序表存储表示及基本操作
/*Name: 稀疏矩阵的三元组顺序表存储表示及各种 Copyright: Author: 巧若拙 Date: 27-10-14 21:28Description: ------------------------------------------------------------------------------在实际应用中,我们经常碰到这样一类矩阵,它们的非零
2014-10-27 21:32:39 24854 3
原创 稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结
详细介绍了三元组存储稀疏矩阵的快速转置算法,重点介绍矩阵乘法的三种不同实现,尤其最后一种快速乘法,先把其中一个矩阵转置,再各行对应元素相乘,思想新颖,代码简洁,值得一看。
2014-10-27 21:24:54 11259 4
转载 向量旋转算法集锦(转载)
/* Name: 向量旋转算法集锦 Copyright: 始发于goal00001111的专栏;允许自由转载,但必须注明作者和出处 Author: goal00001111 Date: 28-12-08 23:28 Description: 向量旋转算法:将具有n个元素的向量a向左旋转r个位置。 例如 :将字符串"abcdefghij"旋转成"defg
2014-10-21 09:15:03 737
原创 算法进化历程之“归并排序”
归并排序是分治算法的典型运用,其中先分治,再合并的思路真是美妙至极。本文介绍了递归和非递归两种归并排序的实现方法,其中非递归算法和高效的合并函数属本人原创,虽然经过小规模数据的测试,但也可能存在纰漏,欢迎批评指正,谢谢!
2014-10-18 10:26:19 852
原创 算法进化历程之“快速排序”
快速排序是在实践中最快的已知排序算法,它的版本非常多,本文将给出常见的一些版本并分析其优化过程。总共10个版本,看起来很过瘾哦!由于是借鉴各种书籍后,自己再重新编写的,所以有可能有些地方会有小问题,欢迎批评指正。
2014-10-15 23:15:47 936
转载 蛇形矩阵的各种情形:共4种5类
/* Name: Copyright: goal00001111 Author: Date: 14-11-08 09:25 Description: 蛇形矩阵的各种情形:共4种5类 */#includeusing namespace std;const int MAX = 20;int a[MAX][MAX];void Fu
2014-10-14 09:02:39 1826
原创 算法进化历程之“根据二叉树的先序和中序序列输出后序序列”
通过对一个作业“根据二叉树的先序和中序序列输出后序序列”的思考,详细分析了不断改进算法的过程。其中通过移动指针确定被处理序列段边界的方法确实让人感觉到算法之美。
2014-10-08 22:50:54 1748 1
原创 《大话数据结构》读书笔记之线性表基本操作(静态单链表实现)
/* Name: 线性表抽象数据类型(使用静态单链表实现) Copyright: Author: 巧若拙 Date:06-10-14 14:16 Description: 近一个月前我总结了线性表抽象数据类型(使用动态单链表实现),实际上更让我感兴趣的是静态链表。这种无需指针而有能够实现链表功能的结构,对于那些不支持指针的高级语言来
2014-10-06 17:17:26 1074
原创 二叉排序树基本操作详解
二叉排序树基本操作详解巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo)所谓二叉排序树,指的是一棵空二叉树,或者是一棵具有如下特性的非空二叉树:1。若它的左子树非空,则左子树上所有结点的值均小于根结点的值;2。若它的右子树非空,则右子树上所有结点的值均大于根结点的值;3。左,右子树本身又各是一棵二叉排序树。 二叉排序
2014-10-04 17:56:14 2634 1
转载 如何避免SIGSEGV
如何避免SIGSEGV良好的编程习惯永远是最好的预防方法。良好的习惯包括:尽量按照C标准写程序。之所以说是尽量,是因为C标准有太多平台相关和无定义的行为,而其中一些实际上已经有既成事实的标准了。例如C标准中,一个越界的指针导致的是无定义的行为,而在实际情况中,一个越界而未解引用的指针是不会带来灾难后果的。借用CU的一个例子,如下: 1 #include 2 #include
2014-10-03 23:52:27 1059
原创 根据先中序序列或后中序序列确定二叉树
根据后中序序列生成二叉树:从后序序列中找到二叉树(或者子树)的根结点,然后在中序序列找到该根结点,根结点将中序序列分成左右两部分,左边为左子树,右边为右子树。根据中序序列确定左子树的长度,确定左子树中最右下根结点在后序序列中的位置,从而可以确定左右子树在后中序序列中的范围,然后递归的生成左右子树。
2014-10-03 11:36:52 2821
原创 线索二叉树基本操作详解
线索二叉树基本操作详解巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) 遍历二叉树是以一定规则将二叉树中结点排列成一个线性序列,得到二叉树中结点的先序,中序或后序序列。这实际上是对一个非线性结构进行线性化操作,使每个结点(除第一个和最后一个外)在这些线性序列中有且仅有一个直接前驱和直接后继。但是,当以二叉链表作为存储结构时,只能
2014-10-02 09:38:01 2854
原创 线索二叉树小结
/*Name: 线索二叉树Copyright:Author: 巧若拙 Date: 30-09-14 22:13Description: 遍历二叉树是以一定规则将二叉树中结点排列成一个线性序列,得到二叉树中结点的先序,中序或后序序列。这实际上是对一个非线性结构进行线性化操作,使每个结点(除第一个和最后一个外)在这些线性序列中有且仅有一个直接前驱和直接后继。但是
2014-10-01 00:07:28 732
C++程序设计陷阱
2016-07-06
程序员面试指导
2014-12-13
OpenGL入门教程(精)
2014-12-13
重构 改善既有代码的设计 中文版
2014-10-17
程序设计竞赛训练手册
2014-10-16
《挑战编程:程序设计竞赛训练手册》
2014-10-16
Effective C++改善程序与设计的55个具体做法 云风评注版
2014-10-14
编程之魂:与27位编程语言创始人对话
2014-10-14
程序设计导引及在线实践
2014-10-14
漫谈设计模式
2014-10-14
改变未来的九大算法
2014-10-14
《( 如何求解问题——现代启发式方法》
2014-10-13
《奇思妙想:15位计算机天才及其重大发现》
2014-10-13
算法导论思考题
2014-10-11
计算机怎样解几何题
2014-10-11
遗传算法的数学基础
2014-10-11
柔性字符串匹配
2014-10-04
《算法之道》第二版(超清晰)
2014-10-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人