精华内容
下载资源
问答
  • 下面小编就为大家分享一篇python 拷贝特定后缀文件,并保留原始目录结构的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 算法设计与分析 实验报告 - PAGE 1 - 实验目的 掌握栈后进先出的特点 掌握栈的典型应用后缀表达式求值 实验内容 用键盘输入一个整数后缀表达式操作数的范围是09运算符只含*/而且中间不可以有空格使用循环程序从左向...
  • 数据结构中,中缀转后缀的实现,运用文件
  • 拷贝特定后缀文件,并保留原始目录结构
    #!/usr/bin/python
    # -*- coding: UTF-8 -*- 
    import os
    import shutil
    
    def cp_tree_ext(exts,src,dest):
        """
        Rebuild the director tree like src below dest and copy all files like XXX.exts to dest 
        exts:exetens seperate by blank like "jpg png gif"
        """
        fp={}
        extss=exts.lower().split()
        for dn,dns,fns  in os.walk(src):
            for fl in fns:
                if os.path.splitext(fl.lower())[1][1:] in extss:
                    if dn not in fp.keys():
                        fp[dn]=[]
                    fp[dn].append(fl)
        for k,v in fp.items():
                relativepath=k[len(src)+1:]
                newpath=os.path.join(dest,relativepath)
                for f in v:
                    oldfile=os.path.join(k,f)
                    print("拷贝 ["+oldfile+"] 至 ["+newpath+"]")
                    if not os.path.exists(newpath):
                        os.makedirs(newpath)
                    shutil.copy(oldfile,newpath)
    
    #用法如下:
    #
    #cp_tree_ext(exts,src,dest)
    #
    #exts:以空格分隔的字符串,可多个拓展名,如"bat txt"
    #src:原目录
    #dest:目标目录,如果不存在,则建立
    cp_tree_ext('doc docx','/home/lincoln/python/copy/source','/home/lincoln/python/copy/target')

    只是段代码,直接调用cp_tree_ext(exts,src,dest) 方法即可。

    展开全文
  • 查看文件后缀系统结构:分析路径,分析图标,取后缀,全文本替换, ======窗口程序集1 || ||------_按钮1_被单击 || ||------_按钮2_被单击 || ||------分析路径 || ||------分析图标 || ||------取后缀 || |
  • PDB后缀文件格式介绍

    2017-12-18 12:48:19
    PDB是一种描述大分子化学结构文件格式,可以用来进行分子结构的3D展示。主要用于描述蛋白质、核酸、氨基酸等有机物大分子的结构特征,记录X 光晶格法、核磁共振光栅法、电子衍射显微法的观察结果。
  • 欢迎下载 欢迎下载 PAGE # 设计思想 一 先将输入的中缀表达式转为后缀再计算的设计思想 我们所熟知的计算表达式为中缀表达式 这之中包含运算符的优先级还有括号 这 对我们来说已经习以为常了 但是在计算机看来 这是...
  • 易语言取本地后缀文件图标模块源码系统结构:取后缀名图标_SHG,取后缀名图标_注册表,SHGetFileInfo,ExtractIconEx, ======程序集1 || ||------_启动子程序 || ||------_临时子程序 || ||------取后缀名图
  • 后缀树,说的通俗点就是将一个字符串所有的后缀按照前缀树(Trie树,可参考此篇文章)的形式组织成一棵树。本文章介绍了后缀树的应用以及使用如何使用Java实现Ukkonen算法构建后缀

    后缀树,说的通俗点就是将一个字符串所有的后缀按照前缀树(Trie树,可参考此篇文章)的形式组织成一棵树。

    什么是后缀树

    举例:“banana\0”,其中 “\0” 作为文本结束符号,该字符串所有的后缀如下:

    banana\0
     anana\0
      nana\0
       ana\0
        na\0
         a\0
          \0

    将所有的后缀构建成一个前缀树,如下:

    图1:粗陋的后缀树:

    图1:粗陋的后缀树

    从图中可以看出大量的重复子串,如存在三个“a\0”,浪费太多的空间,我们需要将其进行压缩,得到如下的后缀树:

    图2:真正的后缀树:

    图2:真正的后缀树

    瞬间感觉看不懂了是吧,其实就是把每个节点放一个字符,改成放多个字符,比如图1最左边的一条分支,每个节点一个字符,太浪费,到图2就成了一个节点,存储了全部的”banana\0”字符,大大节省了空间。当然也增加了查找的复杂度。

    后缀树的应用

    在看如何构建这样一颗后缀树之前,先了解下后缀树的应用,如果没有很好地应用场景,那么我们就没必要浪费时间去了解这么一颗复杂的数据结构了。

    1. 查找字符串o是否在字符串S中。
      方案:用S构造后缀树,按在trie中搜索字串的方法搜索o即可。
      原理:若o在S中,则o必然是S的某个后缀的前缀。
      例如S: leconte,查找o: con是否在S中,则o(con)必然是S(leconte)的后缀之一conte的前缀.有了这个前提,采用trie搜索的方法就不难理解了。
    2. 指定字符串T在字符串S中的重复次数。
      方案:用S+”$”构造后缀树,搜索T节点下的叶节点数目即为重复次数
      原理:如果T在S中重复了两次,则S应有两个后缀以T为前缀,重复次数就自然统计出来了。
    3. 字符串S中的最长重复子串
      方案:原理同2,具体做法就是找到最深的非叶节点。
      这个深是指从root所经历过的字符个数,最深非叶节点所经历的字符串起来就是最长重复子串。
      为什么要非叶节点呢?因为既然是要重复,当然叶节点个数要>=2。
    4. 两个字符串S1,S2的最长公共部分
      方案:将S1#S2$作为字符串压入后缀树,找到最深的非叶节点,且该节点的叶节点既有#也有$(无#)。

    后面会用代码来描述如何应用后缀树进行字符串子串的查找,即应用1。下面先来看看后缀树的构建算法。

    后缀树的构建

    在 1995 年,Esko Ukkonen 发表了论文《On-line construction of suffix trees》,描述了在线性时间内构建后缀树的方法。该文章当然是英文的了,不过国内已经有人翻译了,翻译的文章可以看这里。不过说真的,这是论文,还是老外的论文,就算翻译成中文,但是还是比较难以理解的,至少需要研究好几遍才能大致明白,而且文中出现了比较多的感官动词(不知道是不是这个名词),如“一眼看出”,“显然”等。所以我会结合这篇译文,并加上自己的理解,希望以此帮助大家快速的理解。原文会通过正文对译文进行原样照搬,注释采用斜体,请注意区分。

    Ukkonen算法


    本文试图描述Ukkonen算法,首先显示当字符串是简单的(即不包含任何重复的字符)时候它做什么,然后扩展到完整的算法。

    首先来看一些前言:
    我们正在建设的,基本上像一个搜索特里结构(单词查找树)。所以有一个根节点,从根节点引出新的节点,以及进一步从新节点引出其它节点,依次类推。

    但是:与搜索单词查找树中不同,边标签不是单个字符。相反,每个边的标签是使用一对整数[从哪,到哪]。这些都是指向文本的指针。从这个意义上说,每个边有任意长度的字符串标签,但只需要O(1)的空间(两个指针)。

    基本原理

    我想首先展示如何创建一个特别简单的字符串的后缀树,这个字符串没有重复的字符,如:

    abc

    这个算法工作的步骤,从左到右。字符串的每个字符都有一个步骤。每一步都可能涉及到多个个体的操作,但是我们将会看到(见结尾最后的观察)的总数量操作是O(n)。

    所以我们从左开始,第一次插入单个字符“a“创建一个从根节点(在左边)到一个叶节点的边,和作为[0,#)的标签,这意味着边代表了子串在位置0开始,结束在当前的结尾。我使用符号#来表示当前末尾,这是在位置1(a之后的右边)。

    因此,我们拥有一棵起始树,这棵树看起来如下:

    这里写图片描述

    而其意义如下:

    这里写图片描述

    现在我们前进到位置2(b的右边)。 我们每个步骤的目标是插入至当前位置的所有后缀。
    我们通过以下动作完成目标:

    • 扩展已存在边a为ab
    • 插入一条新边b

    在我们的图示里,它看起来如下:

    这里写图片描述

    而其意义如下:

    这里写图片描述

    我们看到了两点:

    • ab边的图示与它在起始树:[0,#]边的图示是相同的。它的意义却已经自动更改了,因为我们把当前的位置#从1更改到2。
    • 每条边使用的空间复杂度为O(1),因为无论边代表多少个字符 ,它都是由指向文本里的两个指针组成。

    接着我们再次增加位置,并且修改树:给每个已经存在的边增加c,插入一条表示新后缀c的边。
    在我们的图示里,它看起来如下:

    这里写图片描述

    而其意义如下:

    这里写图片描述

    我们看到

    • 这棵树是经过上面的每个步骤后至当前位置的正确的后缀树。
    • 步骤数目与文本中包含的字符一样多。
    • 每个步骤的工作量是O(1),因为所有已经存在的边都是增加#来自动更改的,而且为最后一个字符插入一条新边的时间复杂度为 O(1)。因此对一个长度为n的字符串来说,只需要O(n)时间复杂度。

    注释1:到这里论文中构建了一颗“abc”的后缀树,按照步骤一步一步很容易理解,唯一的地方就是那个#,不过我们可以忽略这个#,在使用程序实现的时候我们会有一个很好的优化的方式让我们很轻松的处理掉这个#。不过,从下面开始,事情似乎变得复杂了很多


    第一次扩展:简单的重复

    当然,后缀树表示的如此良好只是因为我们的字符串没有包含任何重复。现在我们看一个更真实的字符串:

    abcabxabcd

    这个字符串像前面例子里一样是abc开始的,接着重复ab ,紧跟着x,再接着重复abc,紧跟着d。
    步骤1到3:经过了前三个步骤后,我们拥有了前面例子的那棵树:

    这里写图片描述

    步骤4:我们移动#到位置4。这隐含地更改所有已经存在的边为如下:

    这里写图片描述

    而且我们需要在根节点插入当前步骤的最末的后缀a。
    我们做这些之前,我们引入除#之外的 两个或者更多变量,当然这些变量一直都存在,只是我们迄今为止没有使用它们:

    • 活动点(active point),它是一个三元组(活动节点,活动边,活动长度)
    • 剩余后缀数(reminder),它是一个整数,来说明我们需要插入多少个新的后缀。

    这两个图示的确切含义不久就会清晰,不过现在我们只能说:

    • 在简单的abc例子里,活动点总是(root,’0x’,0),也就是说,活动节点是根节点,活动边是由空字符’0x’指定的边,活动长度是0。这么做的结果是我们在每一步骤里插入的一条新边是作为新创建的边插入到根节点。不久我们就会明白为什么需要三元组表示这条信息。
    • 在每个步骤开始时剩余后缀数总是设置为1。它的意义是我们主动插入到每一步骤末尾的后缀数目是1(总是最后一个字符)。

    注释2:关于这里的活动点和剩余后缀数简单解释下。活动点中的活动节点:是用于查找一个后缀是否已经存在这棵树里,即查找的时候从活动节点的子节点开始查找,同时当需要插入边的时候也是插入到该节点下;而活动边则是每次需要进行分割的边,即成为活动边就意味着需要被分割;而活动长度则是指明从活动边的哪个位置开始分割。剩余后缀数是我们需要插入的后缀的数量,说明程序员点就是缓存的数量,因为每次如果要插入的后缀存在,则缓存起来。


    现在将有变化了,当我们给根节点插入当前最后一个字符a的时候,我们特别注意到已经存在一条以a开始的边:abca。在这种情况下我们做如下工作:

    • 我们不向根节点插入一条新边[4,#]。相反,我们只是注意到后缀a已经在我们的树里。它终止在更长的边的中间位置,不过这么做我们并不疑惑,我们还是保留它们原来的样子。
    • 我们设置活动点为(root,’a’,1)。这意味着活动点现在是在根节点的以a开始的向外的边的中间某个位置,具体地指这条边的位置1之后。我们注意到这条边只是由它的首个字符a来声明的。这就足够了,因为以一个特定的字符开始的只有一条边(通读整个文档之后可以确定这是真的)。
    • 我们还增加了剩余后缀数, 那么在下一步骤开始的时候,剩余后缀数为2。

    注意:当发现我们需要插入的最终后缀已经存在在这棵树里的时候,这棵树本身根本就没有改变(我们只是修改了活动节点和剩余后缀数)。那么这棵树就不再是能准确的表示至当前位置的后缀树了,不过它包含了所有的后缀(因为最终的后缀a隐含地包含了)。因此,除了修改变量外(所有这些变量都是定长的,因此空间复杂度是 O(1)),在这一步里没有做其他工作


    注释3:这里原文用了我们特别注意到,可惜,程序可不会注意到,所以在实现的时候这里会涉及到对活动节点的子节点的一个遍历操作。这里还更新了活动点,活动节点是root,而活动边是’a’,对于程序来说活动边则是一个边的对象,只是这个边包含的字符串时以’a’开头,同时活动长度是从0增加到了1。剩余后缀数是1,因为我们缓存了一个后缀’a’。


    步骤5:我们修改当前的位置#为5。这将自动地如下更新这棵树:

    这里写图片描述

    而且由于剩余后缀数为2,我们需要插入目前位置的两个最终后缀:ab和b。这主要是因为:

    • 前一步骤的a后缀从来都没有真正地插入。因此它保留下来,然而由于我们已经向前走了一步,它现在由a延长为ab。
    • 还有,我们需要插入新的最终边b。

    实际上,这意味着我们要修改活动点(它现在指向的是abcab边里的a之后),而且插入当前的最后一个字符b, 不过:同时它也证明b也已经出现在同一条边里。

    因此,我们再次不修改这棵树,我们只是:

    • 修改活动点为(root,’a’,2)(是与前面相同的节点和边,只不过现在我们指向到b之后)
    • 增加剩余后缀数为3 ,因为我们仍然不能插入前一个步骤的最终边,同时我们也不能插入当前的最终边

    为了清晰地说明:我们需要在当前的步骤里插入ab和b,不过由于ab已经找到,所以我们修改了活动点,而且甚至不试图插入b。为什么?因为如果ab处于这棵树里,那么它的每个后缀(包括b)也一定在这棵树里。也许仅仅是隐含性的,不过它一定在这棵树里,因为这是我们迄今为止建立这棵树所采用的方法。


    注释4同时它也证明b也已经出现在同一条边里,看到这句话时思考了半天,真的无法证明,只是我们用肉眼看出来而已,所以程序需要做的是:比较活动边在活动长度指定的字符与’b’是否相同,相同则证明了’b’也出现过在同一条边。此时活动长度的作用就出来了,其实就是标识活动边比较到哪里了。


    我们增加#而前进到步骤6。这棵树自动修改为:

    这里写图片描述

    由于剩余后缀数是3 ,我们不得不增加abx,bx和x。活动点告诉我们ab结束在哪儿,因此我们仅仅需要跳过这儿,然后插入x。x确实还不在这棵树里,因此我们分割abcabx边,插入一个内部节点:

    这里写图片描述

    这条边表示的仍然是指向文本内部的指针,因此分割和插入内部节点的时间复杂度为O(1)。


    注释5:这里为什么突然不证明x也出现过在同一条边呢?因为被肉眼识破了,好吧,程序还是需要按照注释4所说的方法进行一次比较,最终得出x不存在活动边,所以如果需要插入abx,为了充分利用空间,所以不会单独建一个分支存放abx,而是将原来的abcabx分割成ab和cabx两段,然后再为ab增加一个分支存放x。而分割的边就是活动边,分割的长度就是活动长度。


    这时我们处理了abx,并且把剩余后缀数减为2。现在我们需要插入下一个剩余后缀bx。但是在我们做这些之前,我们需要修改活动节点。分割并插入一条边遵循的规则称作规则1,如下,而且它适用于活动节点是根节点的情况(针对下面后续的其他情况,我们将要了解规则3)。规则1如下:

    向根节点插入遵循:

    • 活动节点保留为根节点
    • 设置活动边为我们需要插入的新后缀的第一个字符,也就是b。
    • 活动长度减1

    因此,新的活动节点三元组(root,’b’,1)表明要做的下一个插入在bcabx边,第一个字符之后,即b之后。我们可以确定插入点的时间复杂度为 O(1),并且检查x是否已经出现在树里。如果它出现在这条边里,我们将结束当前的步骤,保持一切为原样。然而如果x没有出现在这条边里,那么我们分割这条边而插入它:

    这里写图片描述


    注释6:上面进行了一次分割,所以引入了规则1,规则1的前提条件是向根节点插入,但是我们插入的是在a这个分支,其实我觉得应该是这么理解:进行分割时如果活动节点是根节点,则依旧保留为根节点;至于第二个 设置活动边为b,这个可不是这么一句话就可以认定的,需要从活动节点进行一次查找,不过肯定是存在的,因为存在ab,则必然存在b。如果剩余的是bcx,则找到b之后还需要继续找c,找x。最终找不到就分割,然后重复以上步骤即可。


    再此说明,它的时间复杂度为 O(1),而且我们按照规则1所示把剩余后缀数修改为1,活动节点修改为(root,’x’,0)。

    不过还有一件事情我们必须做。我们称它为规则2

    如果我们分割一条边并插入新的节点,而且如果它不是在当前步骤里创建的第一个节点的话,我们通过特殊的指针,即后缀连接,把 以前插入的节点和新增的节点连接起来。后面我们将明白为什么这么做是有用的。这儿我们要明白:后缀连接表示为虚线边


    注释7:后缀连接的目的是为了方便后面进行查找,不过需要注意的是:是将前一个分割的节点通过后缀节点指向后一个分割的节点,而且这两次分割必须是出现在一次插入中,即这里是出现在插入x的情况下发生的两次分割,所以可以增加后缀连接。


    这里写图片描述

    我们仍然需要插入当前步骤的最终后缀x。因为活动节点的活动长度部分已经减少到0,最终直接插入到根节点上。由于根节点上没有以x开始的边,所以我们插入了新边:

    这里写图片描述

    正如你所能看到的,在当前的步骤里插入了所有剩余的后缀。

    我们设置#=7而前进到步骤7,这将像往常一样自动添加下一个字符a到所有的叶子边上。然后我们试图插入新的最终字符到活动节点(根节点),然后发现它已经存在在这棵树里了。因此我们结束当前的步骤,不插入任何边,并且修改活动点位(root,’a’,1)。

    设置#=8进入步骤8,我们添加b,像以前所看到的,这仅仅意味着我们修改活动点位(root,’a’,2) ,而且不需要做其他事情就增加剩余后缀数。因为b已经出现在这棵树里。然而我们(在 O(1)时间复杂度里)注意到活动节点现在是一条边的结尾。我们通过重置活动节点位(node1,’\0x’,0)来体现这个。这儿,我们用node1来指ab边结束的哪个内部节点。


    注释8:这里出现了一个修改活动节点的规则:即如果活动边上的所有字符全部都被匹配完了(级活动边上的字符数==活动长度),则将活动边晋升为活动节点,同时重置活动长度为0。所以下次查找时就得从该节点开始了,而不是根节点了。


    接着设置#=9进入步骤9,我们需要插入’c’,这将有助于我们理解的最后一条技巧。

    第二次扩展:使用后缀连接

    像往常一样,#的修改自动给每条是叶子的边添加了c,而且我们转到活动点看是否可以插入’c’。活动点显示’c’已经存在在那条边里,因此我们设置活动点为(node1,’c’,1),且增加剩余后缀数,不做任何其他事情。

    现在设置#=10进入步骤10,剩余后缀数是4 ,因此我们首先需要在活动点插入d而实现插入abcd(这条边从第三步骤开始就一直保留着)。

    试图在活动点插入d将引起时间复杂度为O(1)的边分割:

    这里写图片描述

    分割起始的活动点在上图中标记为红色。 最后一条规则即规则3如下:

    分割从不是根节点的活动点开始的边之后,我们应当紧跟着从活动点开始的后缀连接,如果存在一条这样的连接,那么重置活动节点使它指向这个节点。如果不存在这样后缀连接,那么我们设置活动节点为根节点,活动边和活动长度保持不变。

    因此活动节点现在是(node2,’c’,1),这里node2如下图所示标记为红色:

    这里写图片描述


    注释9:这里使用到了规则2,因为分割c的时候,活动节点是ab,而非根节点,而ab正好存在后缀节点,所以分割完活动节点就跑到了ab的后缀节点b。其实添加了abcd之后,要插入的就是bcd了,如果不使用后缀节点,则需要从根节点开始找b,但是b就一个字符,所以活动节点还是会变成b,而后缀节点就是省了这一步,所以后缀节点只是一个优化手段而已。可以看到b分割之后就需要从根节点找c了,因为b没有后缀连接快速找到c。


    由于abcd的插入已经完成,我们把剩余后缀数减为3,而且考虑当前步骤的下一个剩余后缀bcd。规则3已经设置活动点为右边的节点和边,因此插入bcd可以简单地向活动点插入剩余后缀的最后一个字符d来完成。
    要做到这个将引起另一个边分割,根据规则2 ,我们必须创建一条从以前已插入的节点开始的到新建节点的后缀连接:

    这里写图片描述

    我们注意到:后缀连接使我们重置了活动点,因为我们能在O(1)复杂度下插入下一个剩余后缀。看看上面的图就可确定标签为ab的真正节点连接到节点b(它的后缀),而节点abc则连接到bc节点。

    当前步骤仍然没有结束。现在剩余后缀数是2,我们需要遵循规则3再次重置活动节点。由于当前的活动节点(上图中红色标记的)已经没有后缀连接,我们重置活动节点位根节点。活动节点现在是(root,’c’,1)。

    因此下一个插入发生在根节点的一条边上,以c开始的这条边的标签为:cabxabcd,位于第一个字符之后,即c之后。这将产生另一个分割:

    这里写图片描述

    另外,由于这涉及到新的内部节点的创建,我们遵循规则2,设置一条新的从前面已创建的内部节点开始的后缀连接:

    这里写图片描述

    (为了制作这些小图,我使用了Graphviz Dot软件。新的后缀连接使得Dot软件爱你重新布局了已经存在的边,因此仔细地检查并确定上图中插入的唯一的东西就是一条新的后缀连接。)

    创建了这条连接,剩余后缀树可设置为1 ,另外由于活动节点是根节点,我们根据规则1修改活动点位(root,’d’,0)。这意味着这一步的最后一个插入是向根节点插入单独的d:

    这里写图片描述


    注释10:到这里全部的步骤就结束了,后面的一些需要主要的地方都是这个算法需要注意的地方,所以需要先了解这个算法的运作原理才能看懂后面的注意。


    这是最后一步,至此我们已经完成了后缀树的建立。虽然工作已经完成,但还有许多最后要注意的地方:

    • 在每一步里,我们向前移动#一个位置。这自动在时间复杂度O(1)内修改了所有的叶子结点。
    • 不过,后缀树没有处理 a) 前一步骤保留下来的任何后缀 b)和当前步骤的最后一个字符。
    • 剩余后缀树告诉我们我们需要做多少个后续的插入。这些插入把一对一对应为在当前位置#结束的字符串的最后的后缀。我们认为是一个接着一个,然后再对它们进行插入。重要的是:每条插入都在O(1)的时间复杂度内完成,因为活动点告诉我们确切的位置,然后我们只需要在活动点增加一个单独的字符。为什 么?因为其他字符都隐含地包含了(否则活动点将是其他地方)。
    • 在做了每个这样的插入之后,我们把剩余后缀数减少,并且如果存在后缀的边,就添加一条后缀连接。如果不存在,(根据规则3)我们把活动节点设置为根节点。如果我们已经处在根节点,那么我们根据规则1修改活动节点。在任何情况下,它只花费O(1)的时间复杂度。
    • 在任意插入期间,我们发现我们需要插入的字符已经存在,那么我们不作任何事情而结束当前步骤,甚至在剩余后缀树大于0的情况下。理由是保留的任何插入都是我们试图插入的边的后缀。因此它们所有都隐藏在当前的树里。事实是剩余后缀树大于0确保我们后续对剩余后缀的处理。
    • 如果在算法结束时剩余后缀数大于0意味着什么呢?将是这中情况:结束的文本是以前出现在某个地方的这个文本的子字符串。在这种 情况下,我们必须给这个字符串结尾添加一个额外以前没有出现过的字符。在这样的文档里,通常使用美元符号$作为解决这个问题的符号。为什么会发生这种事情呢?—>如果后来我们使用完整的后缀树搜寻后缀,那么我们只有在后缀结束于叶子时才接受搜寻匹配。否则我们会得到许多假的匹配,因为后缀树立简单地包含了不是猪字符串的真正后缀的许多这样的字符串。在结束的时候强制剩余后 缀数为0是确保所有的后缀都结束在叶子节点的重要方法。然而,如果玩么想用这棵树来寻找通常的子字符串,而不仅仅是主字符串的后缀,那么根据下面OP的评论的建议,最后一步确实不是必需的。
    • 那么,整个算法的复杂性如何呢?如果文本是长度为n的字符组成,那么显然需要n步(或者如果我们增加了没有符号,那么就是n+1 步)。在每个步骤里,我们要么(除了修改变量外)什么都不做,要门我们插入剩余的后缀,每一步都花费O(1)时间复杂度。由于剩余后缀数表明了我们在以前的步骤里不做任何事情的次数,而且现在我们每做一次插入就对剩余后缀数递减,我们做这样的事情 总的次数准确地说是n(或者n+1)。因此,整体的复杂度是O(n)。
    • 然而,有一处小的地方我没有正确地说明: 可能发生这样的情况,我们添加了一条后缀连接,修改活动点,然后发现活动点的活动长度与新的活动节点不能一起正常工作。例如,看看下面这种情况:

      这里写图片描述
      (短划线指的是这棵树的剩余部分,虚线指的是后缀连接。)

    现在,假设活动节点是(red,’d’,3),因此它指向def边的f之后的位置。现在假设我们做了必须的修改,而且现在依据规则3续接了后缀连接并修改了活动节点。新的活动节点是(green,’d’,3)。然而从绿色节点出发的d边是de,因此这条边只有2个字符。为了找到正确的活动点,很明显我们需要添加一个到蓝色节点的边,然后重置活动节点为(blue,’f’,1)。

    在特别糟的情况下,活动长度可以是剩余后缀数那么大,它甚至可以与n一样大。再在找正确的活动节点的时候,这种情况可能刚好发生,我们不仅仅需要跳过一个内部节点长度,不过也许很长,最坏的情况是高达n。由于在每一步里 剩余后缀的插入通常是O(n),续接了后缀之后的对活动节点的后续调整也是O(n)的复杂度 ,这是否意味着这个算法具有隐藏的O(n 2)的复杂度?

    不是这样的,理由是如果我们确实需要调整活动节点(例如,如上图所示从绿色节点调整到蓝色节点),那么这就给我们引入了一个拥有自己的后缀连接的新节点,而且活动长度将缩减。当我们沿着后缀连接这个链向下走,我们就要插入剩余的后缀,且只是缩减活动长度,使用这种方法我们可以调整的活动点的数目不可能超过任何给定时刻的活动长度。由于活动长度从来不会超过剩余后缀数,而后缀剩余数不仅仅在每个单一步骤里是O(n),而且对整个处理过程进行的剩余后缀递增的总数也是O(n),因此调整活动节点的数目也是以O(n)为界的。


    注释11:最后一点注释,这里的注意其实主要证明为什么算法时O(n),以及为了某种特殊目的需要在字符串后面加一个$。



    上面就是Ukkonen算法的全部内容,下面就是将其使用程序进行实现了,太长了,见下一篇吧~~~

    参考文章

    Ukkonen 的后缀树算法的清晰解释
    后缀树
    从Trie树(字典树)谈到后缀树(10.28修订)


    欢迎访问我的个人博客,寻找更多乐趣~

    展开全文
  • 利用顺序栈这种数据结构实现表达式的中缀转后缀,与上一篇博客结合起来就可以形成一个简单的可进行+ -* /等简单操作的计算器~\(≧▽≦)/~啦啦啦

          表达式中缀转后缀:中缀表达式的计算,相邻两个运算符优先级高的先运算;优先级相同,从左到右依次计算;   要实现中缀转后缀,中心思想就是先运算的运算符先从栈内输出。(后缀表达式与中缀表达式的联系可参考我的另一篇博客http://blog.csdn.net/sinat_34927324/article/details/53244380)

    1.中缀转后缀的算法

       (1)操作符栈初始化,将结束符#进栈。然后读入中缀表达式字符流的首字符ch。

       (2)重复执行以下步骤,知道ch='#',同时栈顶的操作符也是#,停止循环。

            1如果ch是操作数直接输出,读入下一字符

             2如果ch是操作符,判断ch的优先级icp和当前位于栈顶操作符op的isp:

                 .icp(ch)>isp(op),令ch进栈,读入下一字符ch

                  .icp(ch)<isp(op),op退栈,并输出

                  .icp(ch)=isp(op),退栈但不输出,如果op='(',读入下一字符

          (3) 算法结束,输出序列即为所需的后缀表达式

    2.运算符栈内栈外的优先级:


    解释一下该表:

        . 相同运算符栈内栈外的优先级为什么不一样?

         相同优先级的运算符进栈后优先级加一是为了实现同级别运算符从左到右依次运算。(相邻两级别相同的运算符左边的运算符先输出)

          比如计算表达式:A+B-C#,先计算的是+运算,后计算的是-运算,从左向右扫描该表达式,操作数A直接输出,然后icp(+)>isp(#),+进栈,然后扫描到B,输出,然后扫描到-,因为+进栈后优先级加一,所以isp(+)>icp(-),+才能出栈并输出,然后icp(-)>isp(#),-进栈,然后扫描到c,输出,然后扫描到#,isp(-)>icp(#),-出栈并输出,最后得到后缀表达式AB+C-。( *,/,%也是同理)

       .为什么*/%的栈外优先级大于+ - 的栈内优先级?

         这是因为*/%的优先级大于+ -的优先级,优先级高的先运算也就先输出。

        比如计算A-B*C# ,从左到右扫描该表达式,A是操作数,输出,读下一字符;icp(-)>isp(#),进栈,并扫描下一操作符;B操作数,输出并读下一字符;此时icp(*)>isp(-),*才能进栈,才能阻止-先输出(即先运算),如此得到的后缀表达式才是ABC*-。如果icp(*)<isp(-),的话,得到的后缀表达式就是AB-C* 了,就不符合优先级高的运算符先运算了。

        .(站外优先级最高,为啥一进栈优先级就变最低了?

          因为要实现括号内的表达式先运算,就得保证括号内的运算符先输出,让(进栈后优先级最低,才能保证括号内的运算符顺利进栈,然后扫描完括号内的表达式后扫描到),其优先级最低,使括号内的运算符输出。

        如A+B(C-D)-E/F,扫描A 输出扫描+,进栈;扫描B输出;扫描(,进栈,进栈后优先级变为最低(扫描C,输出)扫描-,栈外优先级自然高于(的栈内优先级,所以-进栈,D输出后扫描到),isp(-)>icp()),-得以先输出。

        .#的栈内栈外优先级都为最低: # 的栈内优先级最低,是为了扫描开始时运算符顺利进栈。# 的栈外优先级最低,是为了扫描完表达式后扫描到最后一个字符#后,让栈内剩余的运算符顺利输出。

     3.算法细化:

       

      1.头文件:

       优先级头文件:

      

     2.顺序表头文件:


    3.中缀转后缀头文件:


    二.源文件

    1.中缀转后缀:



    顺序栈:(在我另一篇博客可见,此处不再贴出:http://blog.csdn.net/sinat_34927324/article/details/53191631)


    mian函数:调用中缀转后缀的函数



     


     

     

      

      



    展开全文
  • 各种后缀文件的意思

    千次阅读 2013-11-12 17:28:55
    各种文件后缀名与打开方式大全 扩展名 文件类型 打开方式 .aiff 声音文件 Windows media Player .!!! Netants 暂存文件 Netants .ani 动画鼠标 .arj 压缩文件 ARJ .avi 电影文件 Windows ...
    各种文件后缀名与打开方式大全 
    

    扩展名 文件类型 打开方式

    .aiff 声音文件 Windows media Player

    .!!! Netants 暂存文件 Netants

    .ani 动画鼠标

    .arj 压缩文件 ARJ

    .avi 电影文件 Windows media Player

    .awd 传真文档

    .bak 备份文件

    .bas Basic 语言 Basic

    .bat DOS批处理文件

    .bin MAC 二进制码文件 Stuffit Expander

    .bmp 图象文件 画图/看图软件

    .cab 压缩文件 Winzip

    .cdr Corel图画文件 Corel Draw

    .chk Scandisk检察后制作的文件 可以删掉

    .com DOS命令文件 自执行

    .cpx Cryptapix加密图片文件 Cryptapix

    .cur 静态鼠标

    .dbf 数据库文件 dBase, FoxBase, Access

    .dll 应用程序扩展

    .doc 文档文件 Word

    .dwg AutoCAD文件 AutoCAD

    .eps Illustrator 图画文件 Adobe Illustrator

    .exe 执行文件 自执行

    .fon 字体文件

    .gb 国标码文件 南极星文字处理

    .get Getright 暂存文件

    .gif 256色图象文件 画图/看图软件

    .gz 可供UNIX或LINUX使用的压缩文件 Winzip

    .hqx Macintosh 文件 Stuffit Expander

    .htm 网页 浏览器

    .html 网页 浏览器

    .ico 图标

    .ini 配置设置 笔记本或WordPad

    .ipx IPX演示文件 浏览器加装IPX 插件

    .jiff 图象文件 画图/看图软件

    .jpeg 压缩过的图象文件 画图/看图软件

    .jpg 压缩过的图象文件 画图/看图软件

    .js javascript

    .lnk 快捷方式连接文件 连接文件的相应程序

    .m3u Winamp播放列表 Winamp

    .mid 声音文件 Windows media Player

    .mov Quicktime影像文件 Quick Time

    .mp3 压缩音乐文件 Winamp

    .mpeg 影像 Windows media Player

    .mpg 影像 Windows media Player

    .njx 南极星文档 南极星文字处理

    .pcb 电子电路图设计文件 Protel PCB

    .pdf 便携式文档格式,内含图片文字等等 Adobe Acrobat, Adobe Acrobat Reader

    .pm5 PageMaker 5 排版文件 Page Maker

    .ppt Power Point 文件 Microsoft Power Point

    .ps GhostScript

    .psd Photoshop文件 Adobe Photoshop

    .pub Publisher排版文件 Microsoft Publisher

    .qt Quicktime影像文件 Quick Time

    .ra Real Audio声音文件 Real Audio

    .ram Real Audio影像文件 Real Audio

    .rar 压缩文件 Winrar

    .rsf Richwin 字体文件

    .sch 电子原理图设计文件 Protel Schematic

    .scr 屏保文件

    .sea Macintosh 启动文件

    .sit 压缩 Stuffit Expander

    .swf Flash动画文件 浏览器加装Macromedia flash 插件

    .sys 系统文件

    .tar UNIX压缩文件 Winzip

    .tif 高质量图象文件 画图/看图软件

    .tiff 高质量图象文件 画图/看图软件

    .tmp 暂存文件 可以删掉

    .ttf 字体文件

    .txt 纯文本文件 笔记本或全部文字处理系统

    .vbs Visual Basic 编程文件 Microsoft Viasual Basic

    .viv VIVO影像文件 浏览器加装VIVO 插件

    .vqf 压缩声音文件 Yamaha SoundVQ Player

    .wav 未压缩的声音文件 Windows media Player

    .wk1 Lotus 123 试算软件文件 Lotus 123, Excel

    .wq1 Q-Pro 试算软件文件 Q-Pro, Excel

    .wri Write文字文档 Word

    .xls Excel 试算软件文件 Microsoft Excel

    .Z UNIX压缩文件 Winzip

    .zip 压缩文件 Winzip
    bmp Windows or OS/2 Bitmap

    clp Windows Clipboard

    cup Dr. Halo

    dib Windows or OS/2 DIB

    emf Windows Enhanced Meta file

    eps Encapsulated PostScript

    fpx Flash Pix

    gif Compuserver

    iff Amiga

    img GEM Paint

    jpg JPEG - JFIF Compliant

    lbm Deluxe Paint

    mac Mac Paint

    msp Macrosoft Paint

    pbm Potable Bitmap

    pct Macintosh Pict

    pcx Zsoft Paintbrush

    pic PC Paint

    png Portable Network Graphics

    ppm Portable Pixelmap

    psd Photoshop

    psp Paint Shop Pro Image

    ras Sun Raster Image

    raw Eaw File format

    rle Windows or CompuServer RLE

    sct SciTex Continuous Tone

    tga Truevision Targa

    tif Tagged Image file format

    wmf Windows Meta File

    wpg WordPefect Bitmap

    二\文件后缀后详解

    AAS Authorware shocked包
    ABF Adobe二进制屏幕字体
    ABK CorelDRAW自动备份文件
    ABS 该类文件有时用于指示一个摘要(就像在一篇有关科学方面的文章的一个摘要或概要,取自abstract)
    ACE Ace压缩档案格式
    ACL CorelDRAW 6键盘快捷键文件
    ACM Windows系统目录文件
    ACP Microsoft office助手预览文件
    ACR 美国放射医学大学文件格式
    ACT Microsoft office助手文件
    ACV OS/2的驱动程序,用于压缩或解压缩音频数据
    AD After Dark屏幕保护程序
    ADA Ada源文件(非-GNAT)
    ADB Ada源文件主体(GNAT);HP100LX组织者的约定数据库
    ADD OS/2用于引导过程的适配器驱动程序
    ADF Amiga磁盘文件
    ADI AutoCAD设备无关二进制绘图仪格式
    ADM After Dark多模块屏幕保护;Windows NT策略模板
    ADP FaxWork用于传真调制解调器的交互安装文件;Astound Dynamite文件
    ADR After Dark随机屏幕保护;Smart Address的地址簿
    ADS Ada源文件说明书(GNAT)
    AFM Adobe的字体尺度
    AF2 ABC的FlowChat文件
    AF3 ABC的FlowChat文件
    AI Adobe Illustrator格式图形
    AIF 音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式
    AIFF 音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式
    AIFC 压缩AIF
    AIM AOL即时信息传送
    AIS ACDSee图形序列文件;Velvet Studio设备文件
    AKW RoboHELP的帮助工程中所有A-关键词
    ALAW 欧洲电话音频格式
    ALB JASC Image Commander相册
    ALL 艺术与书信库
    AMS Velvet Studio音乐模块(MOD)文件;Extreme的Tracker模块文件
    ANC Canon Computer的调色板文件,包含一系列可选的颜色板
    ANI Windows系统中的动画光标
    ANS ANSI文本文件
    ANT SimAnt For Windows中保存的游戏文件
    API Adobe Acrobat使用的应用程序设计接口文件
    APR Lotus Approach 97文件
    APS Microsoft Visual C++文件
    ARC LH ARC的压缩档案文件
    ARI Aristotle声音文件
    ARJ Robert Jung ARJ压缩包文件
    ART Xara Studio绘画文件;Canon Crayola美术文件;Clip Art文件格式;另一种光线跟踪格式;AOL使用的用Johnson—Grace压缩算法压缩的标记文件
    ASA Microsoft Visual InterDev文件
    ASC ASCⅡ文本文件;PGP算法加密文件
    ASD Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advanced streaming format,ASF)的描述文件;可用NSREX打开 Velvet Studio例子文件
    ASE Velvet Studio采样文件
    ASF Microsoft高级流媒体格式文件
    ASM 汇编语言源文件,Pro/E装配文件
    ASO Astound Dynamite对象文件
    ASP 动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件
    AST Astound多媒体文件;ClarisWorks“助手”文件
    ASV DataCAD自动保存文件
    ASX Cheyenne备份脚本文件;Microsoft高级流媒体重定向器文件,视频文件
    ATT AT Group 4位图文件
    ATW 来自个人软件的Any Time Deluxe For Windows个人信息管理员文件
    AU Sun/NeXT/DEC/UNIX声音文件;音频U-Law(读作“mu-law”)文件格式
    AVB Computer Associates Inoculan反病毒软件的病毒感染后文件
    AVI Microsoft Audio Video Interleave电影格式
    AVR Audio Visual Research文件格式
    AVS 应用程序可视化格式
    AWD FaxVien文档
    AWR Telsis数字储存音频文件扩展名格式
    Axx ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字)
    A3L Authorware 3.x库文件
    A4L Authorware 4.x库文件
    A5L Authorware 5.x库文件
    A3M Authorware Macintosh未打包文件
    A4M Authorware Macintosh未打包文件
    A4P Authorware无运行时间的打包文件
    A3W 未打包的Authorware Windows文件
    A4W 未打包的Authorware Windows文件
    A5W 未打包的Authorware Windows文件
    BAK 备份文件
    BAS BASIC源文件
    BAT 批处理文件
    BDF West Point Bridger Designer文件
    BFC Windows 95 Briefcase文档
    BG Backgammon For Windows下的游戏文件
    BGL Microsoft Flight Simulator(微软飞行模拟器)的视景文件
    BI 二进制文件
    BIF Group Wise的初始化文件
    BIFF XLIFE 3D格式文件
    BIN 二进制文件
    BK 有时用于代表备份版本
    BK$ 有时用于代表备份版本
    BKS IBM BookManager Read书架文件
    BMK 书签文件
    BMP Windows或OS/2位图文件
    BMI Apogee BioMenace数据文件
    BOOK Adobe FrameMaker Book文件
    BOX Lotus Notes的邮箱文件
    BPL Borlard Delph 4打包库
    BQY BrioQuery文件
    BRX 用于查看多媒体对象目录的文件
    BSC MS Developer Studio浏览器信息文件
    BSP Quake图形文件
    BS1 Apogee Blake Stone数据文件
    BS_ Microsoft Bookshelf Find菜单外壳扩展名
    BTM Norton 应用程序使用的批处理文件
    BUD Quicken的备份磁盘
    BUN CakeWalk 声音捆绑文件(一种MIDI程序)
    BW SGI黑白图像文件
    BWV 商业波形文件
    BYU BYU的电影文件格式
    B4 Helix Nuts and Bolts文件
    C C代码文件
    C0l 台风波形文件
    CAB Microsoft压缩档案文件
    CAD Softdek的Drafix CAD文件
    CAL CALS压缩位图;日历计划表数据
    CAM Casio照相机格式
    CAP 压缩音乐文件格式
    CAS 逗号分开的ASCⅡ文件
    CAT Quicken使用 的IntellCharge分类文件
    CB Microsoft干净引导文件
    CBI 二进制卷格式文件(用于IBM大型机系统)
    CC Visual dBASE用户自定义类文件
    CCA cc:邮件文件
    CCB Visual Basic动态按钮配置文件
    CCF 多媒体查看器配置文件,用于OS/2
    CCH Corel图表文件
    CCM Lotus cc:邮箱(例如“INBOX.CCM”)
    CCO CyberChat数据文件
    CCT Macromedia Director Shockwave投影
    CDA CD音频轨道
    CDF Microsoft频道定义格式文件
    CDI Philip的高密盘交互格式
    CDM Visual dBASE自定义数据模块文件
    CDR CorelDRAW绘图文件;原始音频CD数据文件
    CDT CorelDRAW模板
    CDX CorelDRAW压缩绘图文件;Microsoft Visual FoxPro索引文件
    CEL CIMFast事件语言文件
    CER 证书文件(MIME x-x509-ca-cert)
    CFB Compton的多媒文件
    CFG 配置文件
    CFM CotdFusion模板文件;Visual dBASE Windows用户定制表单
    CGI 公共网关接口脚本文件
    CGM 计算机图形元文件
    CH OS/2配置文件
    CHK 由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片
    CHM 编译过的HTML文件
    CHR 字符集(字体文件)
    CHP Ventura Publisher章节文件
    CHT ChartViem文件;Harvard Graphics矢量文件
    CIF Adaptec CD 创建器 CD映像文件
    CIL Clip Gallery下载包
    CIM SimCity 2000文件
    CIN OS/2改变控制文件用于跟踪INI文件中的变化
    CK1 iD/Apogee Commander Keen 1数据文件
    CK2 iD/Apogee Commander Keen 2数据文件
    CK3 iD/Apogee Commander Keen 3数据文件
    CK4 iD/Apogee Commander Keen 4数据文件
    CK5 iD/Apogee Commander Keen 5数据文件
    CK6 iD/Apogee Commander Keen 6数据文件
    CLASS Java类文件
    CLL Crick Software Clicker文件
    CLP Windows 剪贴板文件
    CLS Visual Basic类文件
    CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件
    CMF Corel元文件
    CMG Chessmaster保存的游戏文件
    CMP JPEG位图文件;地址文档
    CMV Corel Move动画文件
    CMX Corel Presentation Exchange图像
    CNF Telnet,Windows和其他其内格式会发生改变的应用程序使用的配置文件
    CNM Windows应用程序菜单选项和安装文件
    CNQ Compuworks Design Shop文件
    CNT Windows(或其他)系统用于帮助索引或其他目的内容文件
    COB TrueSpace 2对象文件
    COD Microsoft C编译器产生的可显示机器码/汇编代码文件,其中附有源C代码作为注释
    COM 命令文件(程序)
    CPD Corel Print Office文件(图形)
    CPD 传真覆盖文档
    CPE 传真覆盖文档
    CPI Microsoft MS-DOS代码页信息文件
    CPL 控制面板扩展名,Corel颜色板
    CPO Corel打印存储文件
    CPP C++代码文件
    CPR Corel提供说明书文件
    CPT Corel 照片-绘画图像
    CPX Corel Presentation Exchange压缩图形文件
    CRD Windows Cardfile文件
    CRP Corel 提供的运行时介绍文件;Visual dBASE自定义报表文件
    CRT 认证文件
    CSC Corel脚本文件
    CSP PC Emcee On_Screen图像
    CSS 瀑布式表格文件
    CST Macromedia Director Cast文件
    CSV 逗号分隔的值文件
    CT Scitex CT位图文件;Paint Shop Pro Grapic编辑器文件
    CTL 通常用于表示一个包含控件信息的文件;FaxWork用它来保持有关每个传真收到或发出的信息
    CUE Microsoft提示牌数据文件
    CUR Windows光标文件
    CUT Dr Halo位图文件
    CV Corel版本的档案文件;Microsoft CodeView信息屏幕文件
    CWK ClarisWorks数据文件.
    CWS ClarisWorks模块
    CXT Macromedia Director受保护的(不可编辑的)投影文件
    CXX C++源代码文件
    DAT 数据文件;WrodPerfect合并数据文件;用于一些MPEG格式的文件
    DB Borland的Paradox 7表
    DBC Microsoft Visual FoxPro数据库容器文件
    DBF dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel 97打开);Oracle 8.1.x表格空间文件
    DBX DataBearn图像;Microsoft Visual FoxPro表格文件
    DCM DCM模块格式文件
    DCR 冲击波文件
    DCS 桌面颜色分隔文件
    DCT Microsoft Visual FoxPro数据库容器
    DCU Delphi编译单元文件
    DCX Microsoft Visual FoxPro数据库容器;基于PCX的传真图像;宏
    DC5 DataCAD绘图文件
    DDF Btrieve或Xtrieve数据定义文件,它包含用于描述Btrieve或Xtrieve文件的元数据
    DDIF Digital Equipment或 Compaq格式,用于保存他们图像与字处理文档
    DEF SmartWareⅡ数据文件;C++模块定义文件
    DEFI Oracle 7 卸载脚本文件
    DEM 用于表示数字高度模型的USGS基准的文件
    DER 认证文件
    DEWF Macintosh Sound Cap/Sound Edit录音设备格式
    DGN Macintosh 95 CAD绘图文件
    DIB 设备无关位图
    DIC 目录
    DIF 可进行数据互换的电子表格
    DIG DigiLink格式;Sound DesignerⅠ音频文件
    DIR MacromediaDirector文件
    DIZ 描述文件
    DLG C++对话框脚本文件
    DLL 动态链接库
    DLS 可下载声音文件
    DMD Visual dBASE数据模块文件
    DMF X-Trakker音乐模块(MOD)文件
    DOC FrameMaker或FrameBuilder文档;Word Star文档、Word Perfect文档、Microsoft Word文档;DisplayWrite文档
    DOT Microsoft Word文档模板
    DPL Borland Delph3压缩库
    DPR Borland Delphi工程头文件
    DRAW Acorn的基于对象的矢量图像文件
    DRV 驱动程序
    DRW Micrografx Designer/Draw;Pro/E绘画文件
    DSF Micrografx Designer VFX文件
    DSG DOOM保存的文件
    DSM Dynamic Studio音乐模块(MOD)文件
    DSP Microsoft Developer Studio工程文件
    DSQ Corel QUERY(查询)文件
    DST 刺绣机图形文件
    DSW Microsoft Developer Studio工作区文件
    DTA Word Bank(世界银行)的STARS数据文件
    DTD SGML文档类型定义(DTD)文件
    DTED 地面高度数字数据(图形的数据格式)文件
    DTF Symantec Q&A相关的数据库数据文件
    DTM DigiTrakker模块文件
    DUN Microsoft拔号网络导出文件
    DV 数字视频文件(MIME)
    DWD DiamondWare数字化文件
    DWG AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式
    DXF 可进行互交换的绘图文件格式,二进制的DWG格式的文本表示;数据交换文件
    DXR Macromedia Director受保护(不可编辑)电影文件
    D64 Commodore的64位模拟磁盘图像文件
    EDA Ensoniq ASR磁盘映像
    EDD 元素定义文档(FrameMaker+SGML文档)
    EDE Ensoniq EPS磁盘映像
    EDK Ensoniq KT磁盘映像
    EDQ Ensoniq SQ1/SQ2/Ks32磁盘映像
    EDS Ensoniq SQ80磁盘映像
    EDV Ensoniq VFX-SD磁盘映像
    EFA Ensoniq ASR文件
    EFE Ensoniq EPS文件
    EFK Ensoniq KT文件
    EFQ Ensoniq SQ1/SQ2/Ks32文件
    EFS Ensoniq SQ80文件
    EFV Ensoniq VFX-SD文件
    EMD ABT扩展模块
    EMF Windows增强元文件
    EML Microsoft Outlook Express邮件消息(MIME RTC822)文件
    ENC 重演文件
    ENFF 中性文件格式扩展名
    EPHTML Perl解释增强HTML文件
    EPS 压缩的PostScript图像
    EPSF 压缩的PostScript文件
    ERI ERWin文件
    ERR 当RobooHELP帮助编译器企图编译一个帮助系统源文件时用来存储错误消息的文件
    EPX ERWin文件
    ESPS ESPS音频文件
    EUI Ensoniq ESP家族的压缩磁盘映像
    EVY 特使文档
    EWL Microsoft Encarta文档
    EXC Microsoft Word禁止字字典
    EXE 可执行文件(程序)
    F FORTRAN文件
    F2R Farandoyle线性模块格式
    F3R Farandoyle分块线性模块格式
    F77 FORTRAN文件
    F90 FORTRAN文件
    FAR Fradole Composer音乐模块(MOD)文件
    FAV Microsoft Outlook导航条
    FAX 传真类型图像
    FBK Navison 金融备份
    FCD 虚拟CD-ROM
    FDB Navison 金融数据库
    FDF Adobe Acrobat表单文档文件
    FEM CADRE有限元素网络文件
    FFA Microsoft快速查找文件
    FFL Microsoft快速查找文件
    FFO Microsoft快速查找文件
    FFK Microsoft快速查找文件
    FFF GUS PnP银行文件格式
    FFT 最终格式文本(IBM的DCA一部分)
    FH3 Aldus Freehand 3绘图文件
    FIF Fractal图像文件
    FIG REND386/AVRIL使用的文件格式
    FITS CCD照相机图像;灵活图像传输系统
    FLA Macromedia Flash电影
    FLC Autodesk FLIC动画文件
    FLF Corel Paradox产生的格式:Navison Financials许可文件;OS/2驱动程序文件
    PLI Autodesk FLIC动画
    FLT StarTrekker音乐模块(MOD)文件;MultiGen Inc的Open Flight使用的文件格式;Corel过滤器文件
    FM Adobe FrameMaker文档
    FMB Oracle4.0版或以后版本表单的二进制源代码文件
    FML 文件镜象列表(GetRight)
    FMT Oracle 4.0版或以后版本表单的文本格式;Microsoft Schedule+ 打印文件
    FMX Oracle 4.0版或以后版本可执行表单
    FND Microsoft Explorer保存的搜索文件(Find applet)
    FNG 字体组文件(字体导航器,Font Navigator)
    FNK Funk Tracker模块格式
    FOG Fontographer模块字体
    FON 系统字体
    FOR FORTRAN文件
    FOT 字体相关文件
    FP FileMaker Pro文件
    FP1 Flying Pigs for Windows数据文件
    FP3 FileMaker Pro文件
    FPT FileMaker Pro文件;Microsoft Fox Pro备注字体文件
    FPX FlashPix位图
    FRM 表单;Frame Maker或Frame Builder文档;Oracle可执行表(3.0版或早期版本);Visual Basic表单;WordPerfect Merge表单;DataCAD标志报表文件
    FRT Microsoft FoxPro报表文件
    FRX Visual Basic表单文本;Microsoft FoxPro报表文件
    FSF fPrint Audit Tool文件格式
    FSL Borland的Paradox 7表单;Corel Paradox保存的表单
    FSM Parandoyle示例格式
    FT Lotus Notes全文本索引
    FTG 全文本搜索组文件,由Windows帮助系统查找时产生——可以删除,并在需要时重建起来
    FTS 全文本搜索引文件,由Windows帮助系统查找时产生
    FW2 Framework Ⅱ文件
    FW3 Framework Ⅲ文件
    FW4 Framework Ⅳ文件
    FXP 经Microsoft FoxPro编译的源文件
    FZB Casio FZ-1银行转储
    FZF Casio FZ-1完全转储
    FZV Casio FZ-1声音转储

    G721 Raw CCITT G.721 $bit ADPCM格式数据
    G723 Raw CCITT G.723 3或5bit ADPCM格式数据
    GAL Corel多媒体管理器相集
    GCD Generic CADD绘画文件(后续版本)
    GCP Ground Control Point(地面控制点)文件,用于远景数据形成图像过程,经常用于生成图工程—CHIPS(copenhagen image processing system)使用这些文件
    GDB InterBase数据库文件
    GDM 铃声、口哨声和声音板模块格式
    GED GEDCOM 系谱数据文件,用于记录和交换系谱数据的流行格式;图形环境文档绘画
    GEM GEM元文件
    GEN Ventura产生的文本文件
    GetRight GetRight未完成的下载文件
    GFC Patton& atton FlowCharting 4 flowchart文件
    GFI Genigraphics图形链接表示文件
    GFX Genigraphics图形链接表示文件
    GHO Norton 克隆磁盘映像
    GID Windows 95全局索引文件(包括帮助状态)
    GIF CompuServe位图文件
    GIM Genigraphics图形链接介绍文件
    GIX Genigraphics图形链接介绍文件
    GKH Ensoniq EPS家簇磁盘映像文件
    GKS Gravis Grip Key文档
    GL 动画格式
    GNA Genigraphics图形链接介绍文件
    GNT 生成代码,Micro Focus属性格式里的可执行代码
    GNX Genigraphics图形链接介绍文件
    GRA Microsoft Graph文件
    GRD 用于远程视景数据产生地图过程的格式文件,通常应用于形成地图工程—CHIPS(copenhagen image processing system)使用这些文件
    GRF Grapher(Golden Software公司)图形文件
    GRP 程序管理组
    GSM Raw GSM 6.10音频流;Raw“byte aligned(比特对齐的)” GSM 6.10音频流;US Robotics语音调制解调器
    GTK Graoumftracker(老)音乐模块(MOD)文件
    GT2 Graoumftracker(新)音乐模块(MOD)文件
    GWX Cenigraphis图形链接介绍文件
    GWZ Cenigraphis图形链接介绍文件
    GZ UNIX gzip压缩文件
    H C程序头文件
    HCM IBM HCM配置文件
    HCOM 声音工具HCOM格式
    HCR IBM HCD/HCM产品配置文件
    HDF 高级计算机应用程序本地中心(NCSA) geospatial Hierarchial数据格式文件
    HED HighEdit文档
    HEL Microsoft Hellbender格式保存的游戏文件
    HEX Macintosh BinHex2.0文件
    HGL HP图形语言绘图文件
    HH 映射文件,包括一些话题ID和在帮助文件系统中话题的映射数字—允许运行中应用程序发送给用户合适的上下文帮助话题
    HLP 帮助文件;Date CAD Windows帮助文件
    HOG Lucas Arts的Dark Forces WAD文件
    HPJ Visual Basic帮助工程
    HPP C++程序头文件
    HQX Macintosh BinHex 4.0文件
    HST 历史文件
    HT HyperTerminal(超级终端)
    HTM 超文本文档
    HTML 超文本文档
    HTT Microsoft超文本模板
    HTX 扩展HTML模板
    HXM Descent2 HAM文件扩展
    J62 Ricoh照相机格式
    JAR Java档案文件(一种用于applet和相关文件的压缩文件)
    JAVA Java源文件
    JBF Paint Shop Pro图像浏览文件
    JFF JPEG文件
    JFIF JPEG文件
    JIF JPEG文件
    JMP SAS的JMPDiscovery表格统计文件
    JN1 Epic MegaGames的Jill of the Jungle数据文件
    JPE JPEG图形文件
    JPEG JPEG图形文件
    JPG JPEG图形文件
    JS javascript源文件
    JSP HTML网页,其中包含有对一个Java servlet的参考
    JTF JPEG位图文件
    K25 Kurzweil 2500抽样文件
    KAR 卡拉OK MIDI文件(文本+MIDI)
    KDC Kodak光增强器
    KEY DataCAD图标工具条文件
    KFX KoFak Group 4图像文件
    KIZ Kodak数字明信片文件
    KKW RoboHELP帮助工程索引设计器中与主题无关的K开头的所有关键字
    KMP Korg Trinity KeyMap文件
    KQP Konica照相机本地文件
    KR1 Kurzweil 2000抽样(多软驱)文件
    KRZ Kurzweil 2000抽样文件
    KSF Korg Trinity抽样文件
    KYE Kye游戏数据
    LAB Visual dBASE标签文件
    LBM Deluxe Paint位图文件
    LBT Microsoft FoxPro标签文件
    LBX Microsoft FoxPro标签文件
    LDB Microsoft Access加锁文件
    LDL Corel Paradox分发库
    LEG Legacy文档
    LES Logitech娱乐系统游戏配置文件(与REC文件一样)
    LFT 3D Studio(DOS)放样文件
    LGO Paintbrush(Microsoft画图应用程序)的徽标文件
    LHA LZH更换文件后缀
    LIB 库文件
    LIN DataCAD线型文件
    LIS 结构化查询报告(SQR)程序产生的输出文件
    LLX Laplink交换代理
    LNK Windows快捷方式文件
    LOG 日志文件
    LPD Helix Nut和Bolt文件
    LRC Intel可视电话文件
    LSL Corel Paradox保存的库文件
    LSP AutoLISP、CommonLISP和其他LISP语言文件
    LST 列表文件
    LU ThoughtWing库单元文件
    LVL Parallax Software的 Miner Descent/D2 Level扩展
    LWLO Lightwave分层对象文件
    LWOB Lightwave对象文件
    LWP Lotus WordPro 96/97文件
    LWSC Lightwave视景文件
    LYR DataCAD层文件
    LZH ARC压缩档案
    LZS Skyroads数据文件M1V MPEG相关文件(MIME“mpeg”类型)
    M3D Corel Motion 3D动画文件
    M3U MPEG URL(MIME声音文件)
    MAC MacPaint图像文件
    MAD Microsoft Access模块文件
    MAF Microsoft Access表单文件
    MAG 在一些日本文件中发现的图形文件格式
    MAGIC 魔力邮件监视器配置文件
    MAK Visual Basil或Microsoft Visual C++工程文件
    MAM Microsoft Access宏
    MAN UNIX手册页输出
    MAP 映射文件;Duke Nukem 3D WAD游戏文件
    MAQ Microsoft Access查询文件
    MAR Microsoft Access报表文件
    MAS Lotus Freelance Graphics Smart Master文件
    MAT Microsoft Access表;3D Studio MAX材料库
    MAUD MAUD抽样格式
    MAX Kinetx的3DStudio MAX文件;该格式用于一个3D场景文件;Paperp
    展开全文
  • 获取网络文件后缀名系统结构:交互回调函数, ======窗口程序集1 || ||------_按钮1_被单击 || ||------交互回调函数
  • yml文件是什么? .properties ? .yml 在做Springboot工程... 这也是配置文件的一种格式,.yml天然的树状结构,非常清楚, application.properties 与 application.yml同时存在优先支持properties,application.ym...
  • 利用顺序栈这种数据结构来设计一个计算器,实现利用后缀表达式来计算含+,-,*,/的表达式的值
  • 文件后缀

    千次阅读 2006-12-28 15:29:00
    pdg是一种电子书,可能用超星的阅读器打开,很多网站都有下载 PDG文件是超星数据图书.需要用超星阅读器打开: 下面是超星阅读器下载地址 参考资料:http://www.tzfo.com/down/Software/Catalog24/54.html 我们经常不...
  • 本人原创的,用于版本...从本机中选择一个文件夹,遍历该文件夹的子文件和子文件夹(以及下层结构),将指定后缀文件的文件名、路径和最后修改日期以excel文件形式输出。 经多人验证可用,如下载后出现问题请留言。
  • 所有文件后缀名查询

    千次阅读 多人点赞 2018-03-01 08:46:28
    含义编辑ISO:镜像文件RAR:压缩包html:网页zip:压缩包exe:安装包pdf:pdf文档rm:视频文件avi:视频文件tmp:临时文件xls:excel工作表mdf:虚拟光驱镜像文件txt:记事本doc:word文档MID:声卡声乐文件文件类型...
  • 模型文件后缀介绍

    千次阅读 2018-08-23 11:20:00
    一 tensorflow 01: 通过saver.save函数将TensorFlow模型保存到了model/model.ckpt文件中,这里代码中指定路径为"...保存后在save这个文件夹中实际会出现3个文件,因为TensorFlow会将计算图的结构...
  • 3. *文件名称:第五周数据结构实践——后缀表达式(栈)【项目5 - 后缀表达式】 4. *作者:杜亭亭 5. *完成日期:2015,10,09 6. *版号:v1.0 7. 8. * 9. *问题描述:利用sqstack.h中栈的基本运算,实现将一个中缀...
  • mootools的相关文档大多以md格式打包发布,动手写了一个解析工具,可以生成两种样式的文档(mootools风格),支持输入文档所在的目录,自动扫描生成对应目录结构,而且生成的文档页面带导航功能。 ...
  • 批量重命名文件后缀

    2008-04-18 14:00:37
    手上经常有一堆html文件,而且目录结构繁杂,以前经常手工逐个改后缀为asp、jsp等,不胜其烦[angry],于是用 nsis 脚本写了个这个小工具,专门来对付一大堆的html文件。[smile]
  • java 过滤指定后缀文件

    千次阅读 2016-11-22 10:26:00
    通过FilenameFilter实现过滤文件后缀,下面是实现方法    public static Map listPath(File file) { // 接收筛选过后的文件对象数组 //用文件对象调用listFiles(FilenameFilter filter);方法, //返回...
  • 栈的数据结构就不多说了,后进先出,只有一个出口。最典型的应用就是中缀表达式转后缀表达式,因为计算机不能识别人类所认知的中缀表达式,逆波兰式多用于编译器实现、自然语言处理这些常用的领域。下面介绍中缀转...
  • .wxml后缀文件是页面结构文件。 app.js是小程序的脚本代码。 我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。调用框架提供的丰富的API,如本例的同步存储及同步读取本地数据。想了解更多可用...
  • ModelFileType:XML、Hdf5、dat等不同模型文件后缀文件的简介、使用方法之详细攻略 目录 一、XML文件 XML简介 XML使用方法 二、HDF5文件 HDF5简介 HDF5常见文件 三、dat文件 dat简介 一、...
  • @echo off for /r %%a in (*.txt) do copy %%a D:\1 pause 1、for /r主要用于搜索...2、上述例子实现将脚本所在目录下后缀为txt的文件复制到目录D:\1中 3、批处理当中的 for 循环的结构:for in do。 %%a 为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 182,033
精华内容 72,813
关键字:

后缀文件结构