C/C++
文章平均质量分 58
sophies671207
一万年太久,只争朝夕
展开
-
递归函数工作原理
递归是一种较为特殊的算法,简单来说,“函数”(或者说子程序)不只是能够被其他函数调用(或者引用)的程序单元,在某些语言中函数提供了调用自己的功能,这种功能就是所谓的“递归”。递归的定义假如一个函数或者子程序是由自身所定义和调用的,就称为递归。递归至少要定义两种条件:一个是可以反复执行的递归过程,另一个是跳出执行过程的出口。递归的分类根据递归调用对象的不同,可以把递归分为以下两种: 1)直接递归:在原创 2017-01-24 20:19:16 · 1901 阅读 · 0 评论 -
线性表知识点小结
一、线性表的定义线性表可以看作一种有序元素的集合,目的在于表示列表中相邻两元素之间的关系。 注意以下几点:有序表可以看作是空集合,或者可以写成(a1,,a2,a3,……)存在唯一的第一个元素a1和唯一的最后一个元素an除了第一个元素a1以外,每一个元素都有唯一的先行者除了最后一个元素an外,每一个元素都有唯一的后继者二、线性表的定义典型应用如: 1、C/C++中的数组或字符串结构,在计原创 2017-01-25 21:20:01 · 1656 阅读 · 0 评论 -
字符数组和字符串
一、字符数组和字符串的再认识此处关于字符串是否是字符数组的问题,此处我们需要明确:字符数组,完整地说叫字符类型的数组。字符数组不一定是字符串。字符串是最后一个字符为NULL字符的字符数组。字符串一定是字符数组。字符数组的长度是固定的,其中的任何一个字符都可以为NULL字符。字符串只能以NULL结尾,其后的字符便不属于该字符串。strlen()等字符串函数对字符串完全适用,对不是字符串的字符原创 2017-01-26 22:52:04 · 15944 阅读 · 2 评论 -
线性表相关知识点总结
一、密集表(1)密集表中同时加入或删除多项数据时,会造成数据的大量移动,此种情况下不适用密集表,如数组结构。二、8种线性表常见的运算方式(1)计算线性表的长度n; (2)取出线性表中的第i项元素加以修正,1<=i<=n; (3)插入一个新元素到第i项,1<=i<=n,并使原来的第i,i+1,……,n项,后移变成i+1.i+2,i+3……,n+1项。 (4)删除第i项元素,1<=i<=n,使得原原创 2017-02-01 22:19:18 · 492 阅读 · 0 评论 -
链表
一、链表特点链表是由许多相同数据类型的数据项按特定排列顺序排列而成的线性表。特性是其各个数据项在内存中的排列是不连续且随机存放的,需要”动态分配内存“时,最适合链表的结构设计,可以让内存运用更具有弹性。在C语言中,动态分配内存主要使用malloc()与free()函数,定义于头文件stdlib.h文件中。举例如下:#include <stdio.h>#include <stdlib.h>#inc原创 2017-02-03 22:17:44 · 365 阅读 · 0 评论 -
最短路径算法
最短路径算法总结最短路径算法 1、Bellman-Ford算法2、Dijkstra算法(代码 以邻接矩阵为例) && Dijkstra + 优先队列的优化(也就是堆优化)3、floyd-Warshall算法(代码 以邻接矩阵为例)4、SPFA(代码 以前向星为例)5、BFS 求解最短路6、路径还原参考文章 1.Bellman - Ford 算法: Bellman-Ford算法详解const i转载 2017-07-02 21:41:55 · 247 阅读 · 0 评论