算法和数据结构
文章平均质量分 76
gls_jia
追寻那遥遥领先
展开
-
最小优先级队列 — 使用最小堆实现
最小优先级支持的操作:1.INSERT(S,x):将元素x插入队列S2.MINIMUM(S):返回S中最小的元素3.EXTRACT_MIN(S):去掉并返回S中最小的元素4.DECREASE_KEY(S,x,key):将下标为x的元素值降低为key 使用最原创 2011-09-11 12:25:15 · 5105 阅读 · 0 评论 -
字符串匹配算法原理简述
1:问题描述:给定文本串,长度n;给定模式串,长度m,求模式串在文本串中出现的起始位置 2:几种字符串匹配算法:处理时间 = 预处理时间 + 匹配时间算法 预处理时间 匹配时间朴素的模式匹配 0 o((n-m+1)*m)Rabin-Karp o(m) o((n原创 2010-08-11 09:26:00 · 1033 阅读 · 0 评论 -
二叉树<总结二>
二叉树基本知识点2: 二叉树的非递归后序遍历前序遍历是:根、左、右,后序遍历是:左、右、根,观察发现:前序和后序刚好遍历顺序相反。由于非递归后序遍历需要保存根节点及第几次访问,比较麻烦。可以将整个过程变为先非递归前序遍历,将结果保存,再将结果翻转即可。 已知二叉树的前序、中序序列,求后序序列void suffix_order(char* pre_order, char* i原创 2011-09-11 12:17:09 · 857 阅读 · 0 评论 -
回溯法原理及应用
回溯的基本原理:在问题的解空间中,按深度优先遍历策略,从根节点出发搜索解空间树。算法搜索至解空间的任意一个节点时,先判断该节点是否包含问题的解。如果肯定不包含,跳过对以该节点为根的子树的搜索,逐层向其祖先节点回溯,否则进入该子树,继续深度优先搜索。 回溯法解问题的所有原创 2011-09-15 12:10:25 · 6333 阅读 · 0 评论 -
C库函数—strcpy实现
strcpy:将原串拷贝到目的串,不拷贝NULL 以下为具体实现:#include#include#includechar * strcpy(char * strDest, const char * strSrc){ if(NULL == strS原创 2011-09-11 12:35:40 · 796 阅读 · 0 评论 -
链表<总结一>
链表的基本知识点:单链表逆置判断链表是否有环从无头单链表中删除节点判断两个单链表是否相交 从无头单链表中删除节点:假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(不是第一个,也不是最后一个),请将该节点从单链表中删除。解答:将该指原创 2011-09-11 12:38:21 · 792 阅读 · 0 评论 -
二叉树<总结一>
二叉树的知识点1:二叉树存储结构前序建立二叉树前序遍历、中序遍历、后序遍历(递归、非递归)二叉树节点总数二叉树叶子节点数二叉树深度遍历二叉树第i层节点分层遍历二叉树(递归、非递归)求二叉树中节点的最大距离已知前序、中序,重建二叉树:原创 2011-09-11 12:09:50 · 886 阅读 · 0 评论 -
贪心算法的几个应用
贪心算法具有2个性质:1、贪心选择性质:只在当前状态下做最优选择,即局部最优选择,再自顶向下,去解做出这个选择后产生的相应子问题。每做一次选择,问题就转化为规模更小的子问题。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步做出的选择最终导致问题的整体最优解。原创 2011-09-11 12:30:25 · 1302 阅读 · 0 评论 -
trie树简介
trie树:又名字典树,是以空间换时间的字符树 trie树示例:(手绘) trie树的操作:create a trieinsert a wordfind a worddestroy a trie trie树的数据结构:以字符只有26个英文字母为例,静态分配空间struct Trie{ int num; //how many words can reach原创 2010-08-11 00:35:00 · 1349 阅读 · 2 评论