
Data structure & Algorithm
文章平均质量分 80
wtfmonking
计算机专业即将毕业小学生。。现已成为毕业的小学生
展开
-
栈和队列 C语言实现
本文包括栈的顺序链接存储操作和队的顺序链接存储操作,全部c语言实现,具体程序分析1、栈的概念2、栈的顺序存储示意图:下面通过一个实例展示栈的顺序存储结构的操作实现,其中包含了6种操作:#include#includetypedef int ElemType; //定义元素类型struct StackSq //定义栈原创 2013-11-28 13:09:04 · 9576 阅读 · 1 评论 -
顺序表查找(顺序查找、二分查找) C语言实现
1、基本概念a. 从大量以前存储的数据中检索特定的一段信息或几段信息的操作称为查找或搜索。b. 平均查找长度ASL的计算公式为:其中,n 为查找表的长度(元素个数),pi 为查找第 i 个元素的概率,ci 是查找第 i 个元素时同给定值 K 所需比较的次数。若查找每个元素的概率相同,则公式可简化为: c. 顺序表:是指采用数组对集合或线性表进原创 2013-12-14 23:02:40 · 32763 阅读 · 4 评论 -
索引查找(索引查找、分块查找) C语言实现
1、基本概念索引查找又称分级查找。索引存储的基本思想是:首先把一个集合或线性表(他们对应为主表)按照一定的函数关系或条件划分成若干个逻辑上的子表,为每个子表分别建立一个索引项,由所有这些索引项构成主表的一个索引表,然后,可采用顺序或链接的方式来存储索引表和每个子表。索引表的类型可定义如下:struct IndexItem{ IndexKeyType ind原创 2013-12-15 21:25:34 · 16353 阅读 · 2 评论 -
二叉搜索树 C语言实现
1、二叉搜索树基本概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是一棵具有如下特性的非空二叉树:(1)若它的左子树非空,则左子树上所有结点的关键字均小于根结点的关键字;(2)若它的右子树非空,则右子树上所有结点的关键字均大于(允许的话,也可大于等于)根结点的关键字;(3)左右子树本身又各是一个二叉搜索树。根据二叉搜索树的特点知:对二叉搜索树进行中序遍历得到的结点序列必然是一个有序序列。原创 2013-12-01 20:20:58 · 4253 阅读 · 0 评论 -
树和二叉树 C语言实现
1、基本概念树是树型结构的简称,它是一种重要的非线性数据结构。树的表示:通常使用广义表表示方法,即每棵树的根作为由子树构成的表的名字而放在表的前面,如下图的树对应的广义表表示为:A(B(D,E(H,I),F),C(G))结点的度:树中每个结点具有的非空子树数或者说后继结点数被定义为该结点的度。(如上图中,B结点度为3,A和E结点度都为2,C结点度为1,其余结点度均为0)树的原创 2013-11-30 23:42:07 · 16860 阅读 · 0 评论 -
堆 C语言实现
1、基本概念堆分为小根堆和大根堆,对于一个小根堆,它是具有如下特性的一棵完全二叉树:(1)若树根结点存在左孩子或右孩子,则根结点的值(或某个域的值)小于等于左右孩子结点的值(或某个域的值)(2)以左、右孩子为根的子树又各是一个堆。大根堆的定义将上面的小于等于改成大于等于即可。根据根的定义,小根堆的堆顶结点具有最小值,大根堆的堆顶结点具有最大值。我们以原创 2013-12-02 14:10:13 · 3292 阅读 · 0 评论 -
稀疏矩阵和广义表 C语言实现
1、稀疏矩阵概念稀疏矩阵是矩阵中的一种特殊情况,其非零元素个数远小于零元素个数。如下图为一个稀疏矩阵2、稀疏矩阵的存储结构稀疏矩阵的存储结构分为顺序存储和链接存储,链接存储又分为带行指针向量的链接存储与十字链接存储。a.顺序存储稀疏矩阵顺序存储结构示意图:其定义如下:(注意:为方便,下面的下标都从1使用)struct Triple /原创 2013-11-29 16:06:34 · 4640 阅读 · 0 评论 -
线性表 C语言实现
线性表// 线性表的顺序存储结构的操作实现#include#includetypedef int ElemType; //定义元素类型struct List //定义单链表结点类型{ ElemType *list;//存储空间基址 int size; //当前长度 int MaxSize; //当前分配的原创 2013-11-27 15:28:18 · 11470 阅读 · 5 评论 -
哈夫曼树 C语言实现
1、基本概念a、路径和路径长度若在一棵树中存在着一个结点序列 k1,k2,……,kj, 使得 ki是 ki+1 的双亲(1从 k1 到 kj 所经过的分支数称为这两点之间的路径长度,它等于路径上的结点数减1.b、结点的权和带权路径长度在许多应用中,常常将树中的结点赋予一个有着某种意义的实数,我们称此实数为该结点的权,(如下面一个树中的蓝色数字表示结点原创 2013-12-06 23:10:03 · 25520 阅读 · 17 评论 -
散列/哈希查找 C语言实现
1、基本概念散列(hash)同顺序、链接和索引一样,是存储数据的又一种方法。散列存储的基本思想是:以数据(通常为集合)中的每个元素的关键字K为自变量,通过一种函数h(K)计算出函数值,把这个值解释为一块连续存储空间(即数组空间或文件空间)的单元地址(即下标),将该元素存储到这个单元中。散列存储中使用的函数h(K),称为散列函数或哈希函数,它实现关键字到存储地址的映射(或称转原创 2013-12-16 16:12:13 · 14590 阅读 · 5 评论