【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
前面我们写过各种各样的算法,什么排序、查找、二叉树、队列、堆栈等等。但是我们在编写这些代码的时候却都有一个缺点,不知道大家发现了没有?那就是这些算法中使用的数据结构都是简单的int数据。所以,如果排序的是int,那么用起来没有什么问题。关键就是万一是其他的数据类型,那我们应该怎么办呢?
在c++中,有一种解决的方法。那就是类函数。就拿冒泡排序来说,我们完全可以这么写。
当然,如果是一个class需要调用上面的算法的话,它还需要定义type缺省构造函数、type拷贝够构造函数两个函数。
那么,在c语言里面有没有什么办法呢?其实也有,那就是void*这种方法。
接着在具体应用的时候,只需要将void*转换成自己需要的那个数据指针了。比如说,如果是int排序的话,我们就需要添加这两个函数即可。
函数调用如下所示,数据转换稍显麻烦。
总结:
(1)写通用函数之前需要写好特定类型的算法函数
(2)通用算法的关键就是怎么样把通用的内容和具体的数据类型比较分开来
(3)C++和C语言在通用算法各有各的方法,建议大家多多使用,特别是一些经常使用的函数。
分享到:
相关推荐
在CSDN上发布的“一步一步写算法C”通过一系列步骤,帮助初学者深入理解如何用C语言编写、理解和优化算法。 首先,我们认识到了算法的重要性。在软件开发中,算法是决定程序功能和效率的关键。没有正确的算法,软件...
《C语言通用算法演示系统详解》 C语言作为一种强大的编程工具,因其简洁高效而深受程序员喜爱,尤其在算法实现上有着广泛的应用。本系统“C语言通用算法演示系统”是针对学习和研究算法的优秀平台,它能帮助我们更...
编写程序求多项式 在某一点x的值。 相关知识:秦九韶算法(递推计算公式) 递推关系的由来:因为 可以改写为
离散小波变换算法剖析及其通用程序实现 小波变换是一种新的信号处理工具,近年来在许多工程领域中已被广泛应用。随着小波变换技术的广泛应用,开发小波变换应用软件的需求日益迫切。然而,目前使用最广泛的小波变换...
同时,C++的模板机制使得算法可以具有更高的通用性和复用性。 通过学习和实践这些数学算法的C++实现,不仅可以提升编程技巧,还能加深对数学原理的理解,为解决实际问题打下坚实的基础。对于在校学生而言,这将有助...
C语言是一种通用的编程语言,因其效率高、可移植性强而常被用于编写算法实现。本篇文章将深入探讨C语言编写的插值算法及其相关知识。 首先,我们要理解插值的基本概念。插值是数学中的一个过程,它的目标是找到一个...
### DSP通用音频算法研究 #### 一、引言 随着数字信号处理器(DSP)技术的发展,DSP已经成为现代信号处理领域不可或缺的一部分。DSP芯片因其高效能处理能力而在多种应用中发挥着重要作用,特别是在音频处理领域。DSP...
在这个特定的压缩包中,我们有一个用Matlab编写的通用A*算法实现,这将有助于理解算法的工作原理,并可以在各种问题中进行应用。 首先,让我们深入了解A*算法的核心概念: 1. **启发式函数**:启发式函数(h(n))...
标题中的"delphi,java des算法通用加解密源码"指的是使用DES(Data Encryption Standard)算法实现的加密和解密功能,适用于两种不同的编程语言:Delphi和Java。DES是一种广泛使用的对称加密算法,它基于块密码设计...
3、编程实现利用DDA算法、中点算法和Bresenham算法生成直线,并显示。 同时要求:(1)实现可动态修改直线的起始点坐标和终点坐标 (2)实现可动态选择线的颜色和线宽。 4、编程实现利用1/8圆中点算法和Bresenham...
假定一个单向循环链表来表示队列(即循环链队),该队列只设一个队尾指针rear,不设队首指针,试编写下列各种运算的算法: 向循环链队插入一个元素值为x的结点; 从循环链队中删除一个结点; 输出队列中所有元素;
C++是一种静态类型、编译型、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的程序设计语言。它的特点是运行效率高,语法灵活,适合编写复杂的算法程序。在C++中实现遗传算法,可以充分利用其强大的...
虽然题目是用Java编写的,但它们的概念和逻辑通常可以应用于其他编程语言,体现了算法的通用性。 首先,`JAVA练习题.txt`可能包含了一系列的算法问题,这些问题可能涵盖排序、搜索、图论、动态规划、递归、贪心算法...
本压缩包"遥感算法IDL代码.rar"提供了多种IDL编写的经典算法,为开发者提供了宝贵的参考资料。 首先,我们来探讨NDVI算法(Normalized Difference Vegetation Index)。NDVI是衡量植被覆盖度的一种常用指标,它通过...
2. **编制并测试银行家算法程序**:学生需要使用C++语言在Microsoft Visual Studio 6.0环境下编写银行家算法程序,并通过屏幕显示调试结果来验证算法的正确性。 3. **理解安全序列与安全性算法**:学生需掌握安全...
* “在编写算法时,需要考虑其适用范围和局限性。” 《我的第一本算法书》是一本非常优秀的书籍,详细介绍了算法的基本概念、分类、设计方法、分析和优化等。通过阅读这本书,读者可以深入了解算法的基础知识和应用...
这个MATLAB程序的文档("蚁群算法TSP(旅行商问题)通用matlab程序.doc")应该详细解释了算法的实现细节,包括各个变量的意义、主要函数的功能以及可能的调参建议。通过阅读和理解这份文档,用户可以更好地理解算法的...
总结来说,编写Keil的Flash下载算法涉及到对目标硬件平台的深入理解,包括对外部Flash的具体操作和对开发环境中工具链的熟悉。通过一系列的初始化和配置,以及编写可靠的SPI通信代码,可以实现将程序高效地下载到...
《基于TI DSP的通用算法实现》程序代码是一个深入学习数字信号处理(DSP)技术的重要资源,其中包含了多种在实际应用中广泛使用的通用算法。TI(Texas Instruments)的DSP芯片因其高性能和低功耗而在通信、音频处理...