首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 906 毫秒
1.
李红卫  徐亚平 《微机发展》2007,17(10):127-129
栈是一种非常重要的数据结构,递归、函数调用都离不开栈。对n个元素入栈和出栈的研究是栈的一个主要研究内容。利用二叉树给出了入栈和出栈序列的表示;给出了由前置O栈序列构造出二叉树的算法;证明了对于按次序入栈的n个元素,其出栈序列总数为C(2n,n)/(n 1);对三种求解出栈序列算法进行了分析和研究,并提出一种时间复杂度为O(n)判断某一序列是否为出栈序列的算法,它提高了程序的执行效率。  相似文献   

2.
该文给出基因组Transhocation排序问题的一个改进多项式算法,原算法所有存储空间O(n),时间复杂度为O(n^3),文中改进算法仍采用O(n)存储空间,时间复杂度为O(n^2logn),具体地,将计算Translocation距离的时间复杂度由O(n^3)改进为O(n^2),将计算Translocation序列的时间复杂度由O(n^3)改进为O(n^2logn).  相似文献   

3.
出栈序列的研究   总被引:1,自引:0,他引:1  
栈是一种非常重要的数据结构,递归、函数调用都离不开栈。对n个元素人栈和出栈的研究是栈的一个主要研究内容。利用二叉树给出了人栈和出栈序列的表示;给出了由前置O栈序列构造出二叉树的算法;证明了对于按次序人栈的n个元素,其出栈序列总数为C(2n,n)/(n+1);对三种求解出栈序列算法进行了分析和研究,并提出一种时间复杂度为O(n)判断某一序列是否为出栈序列的算法,它提高了程序的执行效率。  相似文献   

4.
通过研究二叉树结点顺序存储序号的性质,演绎出了二叉树非递归无堆栈的一些新算法,包括完全二叉树两结点最近共同祖先(LCA)的查询算法、中序遍历算法、顺序序列与中序序列的互转算法以及从中序序列恢复层次结构的算法。新的算法都具有很好的时间复杂度,其中LCA查询算法可在常数时间内实现且不需要任何预处理过程,其他算法均为线性时间复杂度。所有算法均为常数空间复杂度,仅涉及到简单的加减运算与位运算,既可用于常规程序设计也可用于嵌入式等专业开发。  相似文献   

5.
de Bruijn序列是一个周期为2n的0、1序列,去掉n阶de Bruijn序列中连续的n个0中的一个得到一个周期为2~n-1的序列,称为span n序列。一个n阶de Bruijn序列的线性复杂度在2~(n-1)+n和2~n-1之间,然而对应的span n序列的线性复杂度可能降为n。所以span n序列的线性复杂度成为了衡量一个de Bruijn序列好坏的重要标准,因此研究生成高线性复杂度的span n序列的方法是非常有意义的。研究文献[6]中提出的基于特殊函数和非线性反馈移位寄存器寻找span n序列的方法,发现span n序列与参数t的无关性,并基于此提出了几种改进算法。对各种算法进行横向比较,并指出了每种算法的局限和优点,以及今后可能的改进。  相似文献   

6.
从中序遍历及后序遍历构造二叉树   总被引:1,自引:0,他引:1  
本文给出了一个算法,该算法输入一棵二叉树的中序遍历和后序遍历的结点序列,构造出该二叉树。该算法具有O(n)时间复杂度,是解决该问题的最优算法,其中n为二叉树的结点数。  相似文献   

7.
平面点集凸壳的实时算法   总被引:7,自引:1,他引:6  
本文提出平面点集凸壳的实时算法。该算法利用平衡二叉树来代表凸壳的顶点序列,使每次更新凸壳所需计算复杂度为O(log m)。因而n个点的凸壳的计算复杂度为O(n log m),空间复杂度为O(log m),当点服从均匀分布时,算法期望的计算复杂度为O(n)。  相似文献   

8.
有向基因组移位排序问题在计算生物学研究中占有重要位置.以前最好的算法时间复杂度为O(n^2logn).该文给出一个有向基因组移位排序的新多项式算法,将移位排序的时间复杂度改进为O(n^2).算法改进的关键在于找到一种寻找有效合理移位的新方法,通过在最小子排列中删除无关顶点确定一个合理移位是否有效,从而将寻找一个有效移位的时间复杂度改进为O(n),总时间复杂度由此降为O(n^2).  相似文献   

9.
针对单处理器后序遍历二叉树的时间复杂度为O(n)问题,提出了在EREW PRAM并行计算模型下一种后序遍历二叉树的算法。将后序遍历二叉树的边构造一个单链表,使用指针跳越技术对单链表进行表序问题求解,从而得到后序遍历二叉树结点的顺序。得出了运用该算法将时间复杂度从O(n)减少到O(logn)的结论。  相似文献   

10.
最长公共子序列问题的改进快速算法   总被引:1,自引:0,他引:1  
现在几个最常用的解决最长公共子序列(LCS)问题的算法的时间复杂度分别是O(pn),O(n(m-p)).这里m、n为两个待比较字符串的长度,p是最长公共子串的长度.给出一种时间复杂度为O(p(m-p)),空间复杂度为O(m+n)的算法.与以前的算法相比,不管在p<相似文献   

11.
利用VC++开发平台,以《数据结构》课程的重要章节二叉树遍历算法为例,论述二叉树遍历算法演示软件的设计和关键技术并实现整个系统。系统使得学生加深算法的理解,取得良好的教学效果。  相似文献   

12.
基于遍历序列的唯一确定树或二叉树的方法   总被引:5,自引:0,他引:5  
基于遍历序列的唯一确定树或二叉树的方法既体现了树或二叉村的遍历序列的部分性质,又是建立树或二叉村的存储结构的主要依据,本文首先介绍了由一棵二叉树的某两种遍历序列或某种遍历序列和结点的某种信息可以唯一确定该二叉树的各种可能方法,然后分别针对树、严格二叉树与雨季叉排序树加以介绍,本文比较全面的介绍了基于遍历离列的唯一确定树或二叉树的方法,进一步完善了树或二叉树的遍历序列的性质。  相似文献   

13.
本文介绍了由一棵二叉树的某两种遍历序列或某种遍历序列和结点的某种信息可以唯一确定该二叉树的各种可能方法。同时本文将给出基于先序序列和结点右孩子情况的构造二叉树的非递归的新算法。  相似文献   

14.
针对二叉树的链式存储结构,分析了二叉树的各种遍历算法,探讨了递归算法的递推消除问题,提出了一种改进的非递归遍历算法并用C语言予以实现。  相似文献   

15.
提出了一种反向Hash链遍历的时间、空间复杂度优化算法.采用堆栈操作实现了高效的反向Hash链遍历,并将Hash链遍历过程映射到了二叉树的后序遍历过程,利用二叉树性质对存储和计算性能进行了理论化分析和证明.分析证明结果表明,遍历对长为n的反向Hash链时,算法只需要存储[lbn]+1个节点值,并且进行不多于[(lbn-/2+1)n次Hash计算次数.相比同类其他算法,该算法并不要求链长为2的整数次方.通过对算法进行基于k叉树(k≥3)的扩展,进一步将存储空间降低到[lo gk[(k-1)n+1],但总计算次数提高到[(-logk[(k-1)n+1]-1)k/2+1]n;通过在算法执行前先把Hash链平分为p段(p≥2),将总计算次数降低到[(lb(n/p)-/2+1)n,但是所需的存储空间提高到[(lb(n/p)+1)p.  相似文献   

16.
本文从教学实践的角度出发,阐述了学生对“数据结构”课程教学中二又树遍历这一知识点不易理解的问题,并提出一种新的方法——填空法解决这一问题。通过对填空法的基本原理和讲授方式的探讨,使学生产生兴趣从而提高该知识点的课堂教学效果。  相似文献   

17.
为了实现网络入侵检测系统中的精确字符串匹配,本文提出了一种基于叶子-附加和二叉搜索树的字符串匹配算法及其实现架构;首先采用叶子-追加算法来对给定的模式集进行处理,以消除模式之间的重叠。然后采用二叉搜索树算法提取叶子模式及其匹配向量来构建二叉搜索树,并根据每个节点的比较结果,通过左遍历或右遍历来实现字符串的精确匹配;为了进一步提高字符串匹配算法的内存效率,提出了级联二叉搜索树;最后給出了实现精确字符串匹配的总体架构和各个功能模块的架构;实验结果表明,本文提出的设计不仅在内存效率和吞吐量方面优于目前先进的设计技术,而且具有灵活的可扩展性。  相似文献   

18.
通过对同一棵二叉树的前序遍历、中序遍历、后序遍历及层次遍历得到四个不同序列的分析,概括出二叉树的前序遍历、中序遍历、后序遍历及层次遍历序列间的关系,确定对应的二叉树。  相似文献   

19.
分治策略的思想是将一个规模较大的问题分解为多个形式相同的子问题来解决。搜索是指在一个排好序的数组中寻找与给定数值x相等的元素,传统的搜索算法是遍历,而二分搜索是一种基于分治策略的搜索算法。二分搜索是将数组每次分为相等的两部分,将待查元素x与数组中间的元素比较,若相等则搜索成功;否则将搜索范围缩小为原来的一半,之后以此类推,直到找到待查元素,与遍历相比,二分搜索复杂度明显降低。以二分搜索为基础,每次可以将数组分为更多部分,即k分搜索,探寻k为何值时k分搜索算法的时间复杂度最低,能够对搜索算法进一步优化。通过分析、归纳与证明,得出k分搜索的时间复杂度为O(klogkn),由于该函数是递增的,因此二分搜索是效率最高的搜索算法,复杂度为O(log2n);此外,当k=n时,k分搜索退化为遍历,复杂度退化为O(n)。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号