随笔分类 - 数据结构与算法设计
摘要:内部排序:全部待排序记录都可以同时调入内存进行的排序。 外部排序:待排序记录的数量太大,以致无法将其同时调入内存,尚需访问外存的排序过程。 排序中的基本操作: 1. 比较关键字大小 (对大多数排序算法是必须的) 2. 移动记录 (可通过改变记录的存储方式避免) 待排序记录的存储方式: 1. 存储在地
阅读全文
摘要:KMP算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键在于:每当一次匹配过程中出现比较不等时,不需回溯i指针,而是利用已经匹配得到的“部分匹配”的结...
阅读全文
摘要:重构二叉树的思路主要是首先在前序(后序)序列中找到根结点,然后在中序序列中找到根结点所在的位置,该结点将整个序列分成两个部分,前一部分为根结点的左子树元素,后一部分为根结点的右子树元素。再递归的生成左子树和右子树即可。 1.通过前序,中序序列重构二叉树 TreeNode * buildTree(ve
阅读全文
摘要:AVL(Adelson-Velskii and Landis)树是带有平衡条件的二叉查找树。其每个结点的左子树和右子树的高度最多差1. 在高度为h的AVL树中,最少结点数S(h)=S(h−1)+S(h−2)+1。对于h=0,S(h)=1;h=1,S(h)=2。AVL的树的结点声明st...
阅读全文
摘要:树结点的声明struct BinaryNode{ char element; BinaryNode* left; BinaryNode* right; BinaryNode() { element = ' '; left = right = ...
阅读全文