- 博客(24)
- 资源 (2)
- 收藏
- 关注
原创 最长公共子序列LCS
最长公共子序列LCS(longest common subSequence):(一)最长公共子序列(longest common subSequence)与最长公共子串(longest common subString)的区别:子串:是串的一个连续的部分;子序列:不改变序列的顺序,从序列中去掉任意的元素而获得的新序列。(二)举例:如:串acdfg和串akdfc的最长
2014-08-31 11:37:37 623
原创 查找给定区间内第K大的元素
查找给定区间内第K大的元素:(一)方法一:最小堆:O( n*lg(k) )(1)思想:1.建立一个大小为k的最小堆2.注意:是给定区间,堆中存放的是给定区间的元素,不是给定区间的元素不会存放。说明:这个问题有些类似于n个数中查找最大的top(k)问题;建立大小为k的最小堆,后续的n-k个数,每次和堆顶元素进行比较,比其大,则替换堆顶的值,调整最小堆;调整最小堆的复杂度...
2014-08-30 19:29:02 808
原创 堆排序heapSort_legend
堆排序:(一)定义:(二)思想:1.先建立一个最大堆;2.然后将最大堆的堆顶元素(0号元素,最大值)与堆的最后一个元素(n-1号元素)交换,这样最后一个元素(n-1号)就保存的是最大值了。然后堆的个数-1;调整堆siftDown,(是从0号到n-2号调整),这样就可以在堆顶获得第二大的元素。3.重复2;4.最终从n-1号元素到0号元素,存储的就是递减的顺序。所以
2014-08-30 13:21:29 494
原创 树与森林总结(不包含二叉树)——legend
树与森林:(一)树的存储结构:(1)父指针: 1.用一个一维数组存储树中的每一个节点,每一个节点包含data,parent,parent指出该节点的父节点在数组中的位置。 2.类型定义如下; typedef struct ParNode{ DataType data; int parent; }; typedef struct PTre
2014-08-29 10:22:07 1286
原创 树的总结(二叉树,树,森林)-legend
树(包含二叉树)的总结:(一)树的框架图解:如下图:(二)树的定义,性质:(1)树的基本概念: 根节点:没有父节点的节点; 叶子节点/终端节点:没有子节点的节点;或度数为0的节点。 分支节点、非终端节点:有子节点的节点。只有一个子节点的节点为单分支节点,有2个子节点的为双分支节点。 节点的度:某个节点的孩子数。 树的度:树中节点的度的最大值。通常将度为m
2014-08-29 10:21:40 741
原创 并查集UFS总结—legend
并查集UFS(union-find set):(一)并查集的定义与适用于:(1)定义:快速实现两个不相交的集合的合并,以及查找某个元素所在的结合的数据结构。(2)适用于:1.无向图的连通分量的个数;2.Kruskal算法中求最小生成树;3.关系传递,圈子个数;(二)并查集的操作:(1)initial(s):将集合中的每一个元素都初始化为只有一个元素的
2014-08-29 10:17:05 1525
原创 二叉树总结_legend
二叉树总结:(一)二叉树定义:(二)二叉树的特点,性质:(三)二叉树的存储结构:(四)二叉树的5中基本形态以及Catlan数:(五)完全二叉树与满二叉树:http://blog.csdn.net/legend050709/article/details/38668025(六)二叉树的遍历:(六-1)二叉树的创建:http://blog.csdn.net/
2014-08-28 10:11:14 628
原创 Huffman树
Huffman树/最优二叉树:(一)Huffman树的定义:(1)节点的带权路径长度WPL(weighted path length):根结点到该节点的路径长度与该节点的权值的乘积为节点的WPL:(2)树的带权路径长度WPL:树的WPL:树上所有叶子节点的带权路径长度之和。(3)Huffman树/最优二叉树:带权路径长度最小的二叉树为Huffman树/最优二叉树
2014-08-28 10:09:24 583
原创 最小堆&最大堆_legend
最小堆:(一)定义:有一个关键码的结合K={k1,k2,k3,..kn},把它的所有的元素按照完全二叉树的顺序存储方式存放在一个数组中,其满足ki<=k(2*i+1)且ki<=k(2*i+2),(i=0,1,2...n/2-1),则这个集合为最小堆。堆的存储可以看成是数组存储的变形,不过,堆的存储又具有二叉树的结构,堆的存储按类型可以分为大堆和小堆。小堆(大堆)中...
2014-08-28 09:59:34 912
原创 二叉查找树BST----legend050709
二叉排序、搜索树:BST(一) 定义 & 特点(二) 二叉查找数的查找(三)二叉查找数的遍历(四)二叉查找树的插入与创建(五)二叉查找树的删除(六)支持重复数据的二叉查找树(七)二叉查找树的复杂度(八)二叉查找树和Hash表对比(九)二叉查找树的其他操作(十) 平衡二叉树AVL------------------------------...
2014-08-26 14:31:22 617
原创 二叉查找树的其他操作
二叉查找树的其他操作:(1)判断一个二叉树是否为二叉查找树;(2)二叉查找树中记录每个节点的出现次数;---------------------(1)判断一个二叉树是否为二叉查找树1)分析:二叉查找树的中序序列为递增序列,所以对一个二叉树进行中序遍历,如果始终保持当前节点的中序前驱节点pre的值小于当前节点的值,则是二叉查找树,否则不是。2)代码实现:DataTy...
2014-08-26 14:28:26 681
原创 线索二叉树_legend
线索二叉树:(一)线索二叉树的概念: 二叉树的遍历是对一个非线性化的结构进行线性化的过程,它使得每个节点(除了第一个节点和最后一个节点),在线性序列中有且只有一个前驱和后继。但二叉链表的结构只能得到一个节点的左孩子,右孩子,并不能得出前序后继的信息。 n个节点的二叉树,有n+1个空的指针域,可以用这些空指针域来存放某种遍历下的前驱和后继节点指针,称为线索。 在空的 左指针中
2014-08-25 15:23:13 731
原创 二叉树遍历变形_legend
二叉树遍历变形:(0)二叉树的层次遍历分层打印(1)输出二叉树中所有的叶子节点(2)释放二叉树中的所有节点(3)基于递归的二叉树算法设计(4)递归法求二叉树中的所有叶子节点(5)查找值为x的节点,找到返回其指针(6)二叉树的 高度(7)求先序遍历中的第k个节点的值(8)二叉树的叶子节点个数(9)二叉树中的单分支节点个数(10)双分支节点个数(...
2014-08-24 15:00:09 1009
原创 二叉树的遍历(前中后,层次)——legend
二叉树的遍历:traverse(1)深度优先遍历 :(递归与非递归)(1.1)先序 (先根):preOrder(WithRecusion/WithoutRecusion)(1.2)中序 (中根):inOrder(WithRecusion/WithoutRecusion)(1.3)后序 (后根):postOrder(WithRecusion/WithoutRecu...
2014-08-19 14:26:30 756
原创 二叉树的定义_性质_存储_legend
二叉树的定义_存储_常见形态_性质:(一)二叉树定义:(二)二叉树的特点,性质: (2.1)二叉树的性质: (2.1.1)叶子节点数=双分支节点数+1;即n0=n2+1 解析:n=n0+n1+n2=n1+2*n2;所以:n0=n2+1; (2.1.2)二叉树上第i层上最多有2^(i-1)个节点。(i>=1) (2.1.3)高度为h的二叉树最多有2^h-1
2014-08-18 22:17:39 695
原创 队列总结_legend
队列总结:Queue (1)队列的基本知识: (1.1)特点:尾进头出,先进先出。(rear in front out) (1.2)与线性表比较: 队列是一种插入,删除操作受限的线性表,插入元素的一端为队尾,删除元素的一端为队头。队列中数据元素之间的逻辑关系与线性表中数据元素之间
2014-08-18 20:47:01 881
原创 hash表_legend
散列表:(零)步骤: (1)用给定的哈希函数构造哈希表。 (2)根据选择的冲突处理方法解决地址冲突。 (3)在哈希表的基础上执行哈希查找,插入,删除。(一)散列函数: 把线性表中的关键字映射为关键字对应的地址的函数,记为Hash(key)=addr. (这里的地址可以是数组下标,索引,或内存地址等) 1)散列函数定义域和值域: 定义域:包含所有需要存储的
2014-08-16 17:06:33 590
原创 hash之开放定址法解决冲突
/*hash表之开放定址法处理冲突:*/方法一:/*根据提示输入学生信息,然后输入查找学生的学号,如果有的话,输出学生姓名和位置,如果没有的话,提示没有该学生的信息。*/#import #define MAX 20typedef struct{ int num; char name[20];} ElemType; //定义查找
2014-08-16 17:06:21 1618
原创 hash表之拉链法处理冲突
/*hash表之拉链法处理冲突:*/方法一:#define ARRLEN 17#define NAMELEN 20#define ADDRLEN 20typedef struct _rec{ char name[NAMELEN]; char addr[ADDRLEN]; struct _rec *next;} rec;//h
2014-08-16 17:01:07 2458
原创 查找概述_legend
查找:(一)查找表:用于查找的数据结构为查找表,它是由同一类型的数据元素组成,可以是一个数组或链表等数据类型。(二)操作: (1)查找某个特定的数据元素是否在查找表中; (2)检索满足条件的某个特定数据元素的各种属性; (3)插入一个数据在查找表中; (4)删除一个数据在查找表中;(三)动态查找表,静态查找表: 静态查找表:对表的操作只是涉及(1),(2
2014-08-14 18:38:20 577
原创 分块查找_legend
分块查找BlockingSearch(索引顺序查找):二分查找与顺序查找的组合 (一)思想: (1)构建查找表 将查找表分为若干块,块内无序,块间有序; 即第一块中的关键字小于第二块中的关键字,第二小于第三,.....; (2)建立一个索引表,索引表中的每个元素含有各
2014-08-14 18:35:13 695
原创 TCP状态转换图_legend050709
拥塞处理相关概念拥塞窗口:含义:拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化.发送方让自己的发送窗口等于拥塞窗口.如再考虑到接收方的接收能力,则发送窗口还可能小于拥塞窗口发送方控制拥塞窗口的原则:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去.但只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网
2014-08-14 09:07:29 680
原创 TCP断开连接_legend050709
· 连接释放:· 图释:· · 步骤:· 数据传输结束后,通信的双方都可释放连接.现在 A 的应用进程先向其 TCP发出连接释放报文段,并停止再发送数据,主动关闭 TCP 连接(A把连接释放报文段首部的
2014-08-14 08:58:54 633
原创 TCP建立连接_legend050709
三个阶段:· 连接建立:· 图释:· · 步骤:· A的 TCP向 B发出连接请求报文段,其首部中的同步位 SYN = 1,并选择序号 seq = x,表明传送数据时的第一个数据字节的序号是 x
2014-08-14 08:53:41 628
java对于Json文件的解析范例
2014-06-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人