摘要:
1.基本概念2.时空复杂度3.稳定性4.使用情况分析排序算法总结(C语言版)已介绍排序算法的基本思想和C语言实现,本文只介绍时空复杂度和稳定性。1.基本概念时间复杂度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法的语句执行次数称为语句频度或时间... 阅读全文
摘要:
1.链表1.1链表的存储表示//链表的存储表示typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode, *LinkList;1.2基本操作创建链表:/* * 创建链表。 * 形参num为链... 阅读全文
摘要:
1. 图2. 图的存储结构2.1 数组表示法(邻接矩阵表示法)2.2 邻接表2.3 十字链表2.4 邻接多重表1. 图顶点:图中的数据元素。V是顶点的有穷非空集合。弧:表示从v到w的一条弧,v为弧尾,w为弧头。VR是两个顶点关系的集合。无向图:若∈VR,必有∈VR,则此图为无向图。有向图:无上述关系... 阅读全文
摘要:
1. 二叉平衡树二叉排序树查找、插入和删除操作的时间复杂度和树的深度n有关。构建树时,当先后插入的结点按关键字有序时,二叉排序树退化为单枝树,平均查找长度为(n+1)/2,查找效率比较低。提高查找效率,关键在于最大限度地降低树的深度n。因此需要在构建二叉排序树的过程中进行“平衡化”处理,使之成为二叉... 阅读全文
摘要:
1. 二叉排序树二叉排序树(Binary Sort Tree)或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有结点值相同的结点。二... 阅读全文
摘要:
1. 基本概念在线性表、树等数据结构中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系。因此,当在结构中查找记录时必须进行一系列和关键字的比较。查找记录的效率取决于比较次数。理想的情况是给定一个关键字,不需要进行比较,立刻就能确定该记录在结构中的存储位置,然后一次存取就能得到所需... 阅读全文
摘要:
1. 堆堆:n个元素序列{k1,k2,...,ki,...,kn},当且仅当满足下列关系时称之为堆:(ki = k2i,ki >= k2i+1), (i = 1,2,3,4,...,n/2)若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,则堆的含义表明,完全二叉树... 阅读全文
摘要:
先序遍历:若二叉树为空,则空操作;否则访问根节点;先序遍历左子树;先序遍历右子树。中序遍历:若二叉树为空,则空操作;否则中序遍历左子树;访问根节点;中序遍历右子树。后序遍历:若二叉树为空,则空操作;否则后序遍历左子树;后序遍历右子树;访问根节点。二叉链表:链表中的结点包含三个域:数据域和左右指针域。... 阅读全文
摘要:
1. 树根、子树、结点、孩子、双亲、兄弟、堂兄弟、祖先、子孙结点的度:结点拥有的子树数树的度:树内各结点度的最大值树的深度(高度):结点的最大层次叶子(终端结点):度为0的节点分支节点(非终端结点):度不为0的节点2. 二叉树特点:每个结点至多有两个子树,且子树有左右之分。性质1:二叉树的第i层上至... 阅读全文
摘要:
在使用指向函数的指针调用函数时,可以使用两种形式:定义:int (*fun)(int a,int b);赋值:fun = fun1;调用:fun(a,b);或者(*fun)(a,b);均可。下面是测试程序:(Visual Studio 2013)#define _CRT_SECURE_NO_WARN... 阅读全文