IQ-TREE Version 2.1.2: Tutorials and Manual Phylogenomic Software by Maximum Likelihood

Total Page:16

File Type:pdf, Size:1020Kb

IQ-TREE Version 2.1.2: Tutorials and Manual Phylogenomic Software by Maximum Likelihood IQ-TREE version 2.1.2: Tutorials and Manual Phylogenomic software by maximum likelihood http://www.iqtree.org Bui Quang Minh, Rob Lanfear, Jana Trifinopoulos, Dominik Schrempf, Heiko A. Schmidt March 15, 2021 2 Preface Contents 1 Introduction 9 1.1 Why IQ-TREE? .............................. 9 1.2 Key features ................................. 10 1.3 Free web server ............................... 10 1.4 User support ................................ 11 1.5 Documentation ............................... 11 1.6 How to cite IQ-TREE? ........................... 12 1.7 Development team ............................. 13 1.8 Credits and acknowledgements ....................... 14 2 Getting started 15 2.1 IQ-TREE web server ............................ 15 2.2 Installation ................................. 15 2.2.1 Packages and bundles ....................... 15 2.2.2 Manual download .......................... 16 2.3 For Windows users ............................. 16 2.4 For Mac OS X users ............................ 16 2.5 Minimal command-line examples ..................... 17 2.6 Where to go from here? .......................... 20 3 Web server tutorial 21 3.1 Tree Inference ................................ 21 3.2 Model Selection ............................... 23 3.3 Analysis Results .............................. 23 4 Beginner’s tutorial 27 4.1 Input data .................................. 27 4.2 First running example ........................... 28 4.3 Choosing the right substitution model .................. 30 4.4 Using codon models ............................ 32 3 4 CONTENTS 4.5 Binary, morphological and SNP data ................... 33 4.6 Assessing branch supports with ultrafast bootstrap approximation ... 34 4.7 Reducing impact of severe model violations with UFBoot ........ 35 4.8 Assessing branch supports with standard nonparametric bootstrap ... 35 4.9 Assessing branch supports with single branch tests ........... 35 4.10 Utilizing multi-core CPUs ......................... 37 4.11 Where to go from here? .......................... 38 5 Advanced tutorial 39 5.1 Partitioned analysis for multi-gene alignments .............. 39 5.2 Partitioned analysis with mixed data ................... 41 5.3 Choosing the right partitioning scheme .................. 42 5.4 Ultrafast bootstrapping with partition model ............... 43 5.5 Constrained tree search .......................... 43 5.6 Tree topology tests ............................. 45 5.7 Testing constrained tree .......................... 46 5.8 Consensus construction and bootstrap value assignment ......... 48 5.9 User-defined substitution models ..................... 49 5.10 Inferring site-specific rates ......................... 50 5.11 Where to go from here? .......................... 52 6 Assessing phylogenetic assumptions 53 6.1 Tests of symmetry ............................. 53 6.2 Likelihood mapping ............................. 55 7 Concordance Factor 59 7.1 Inferring species tree ............................ 60 7.2 Inferring gene/locus trees ......................... 60 7.3 Gene concordance factor (gCF) ...................... 61 7.4 Site concordance factor (sCF) ....................... 61 7.5 Putting it all together ........................... 62 8 Phylogenetic Dating 63 8.1 Inferring time tree with tip dates ..................... 64 8.2 Calibrating tree using ancestral dates ................... 66 8.3 Dating an existing tree ........................... 67 8.4 Obtaining confidence intervals ....................... 67 8.5 Excluding outlier taxa/nodes ....................... 67 8.6 Full list of LSD2 options .......................... 68 9 Rooting phylogenetic trees 75 CONTENTS 5 9.1 Inferring unrooted tree with outgroup ................... 75 9.2 Inferring rooted trees without outgroup .................. 77 9.3 Testing root positions ........................... 80 10 Command reference 83 10.1 General options ............................... 83 10.1.1 Example usages: .......................... 85 10.2 Checkpointing to resume stopped run ................... 85 10.3 Likelihood mapping analysis ........................ 86 10.3.1 Example usages: .......................... 87 10.4 Automatic model selection ......................... 89 10.4.1 Example usages: .......................... 92 10.5 Specifying substitution models ....................... 93 10.5.1 Example usages: .......................... 94 10.6 Rate heterogeneity ............................. 94 10.7 Partition model options .......................... 95 10.8 Site-specific frequency model options ................... 96 10.9 Tree search parameters ........................... 96 10.9.1 Example usages: .......................... 98 10.10Ultrafast bootstrap parameters ...................... 98 10.10.1 Example usages: .......................... 99 10.11Nonparametric bootstrap .......................... 99 10.12Single branch tests ............................. 99 10.12.1 Example usages: .......................... 100 10.13Ancestral sequence reconstruction ..................... 100 10.13.1 Example usages: .......................... 100 10.14Tree topology tests ............................. 101 10.14.1 Example usages: .......................... 102 10.15Constructing consensus tree ........................ 102 10.16Computing Robinson-Foulds distance ................... 103 10.16.1 Example usages: .......................... 103 10.17Generating random trees .......................... 104 10.17.1 Example usages: .......................... 104 10.18Miscellaneous options ............................ 104 10.18.1 Example usages: .......................... 105 11 Substitution models 109 11.1 DNA models ................................ 109 11.1.1 Base substitution rates ....................... 109 11.1.2 Base frequencies .......................... 111 11.1.3 Lie Markov models ......................... 111 6 CONTENTS 11.2 Protein models ............................... 113 11.2.1 Amino-acid exchange rate matrices ................ 113 11.2.2 Protein mixture models ...................... 114 11.2.3 User-defined empirical protein models .............. 115 11.2.4 Amino-acid frequencies ....................... 116 11.3 Codon models ................................ 116 11.3.1 Codon substitution rates ...................... 117 11.3.2 Codon frequencies ......................... 118 11.4 Binary and morphological models ..................... 119 11.5 Ascertainment bias correction ....................... 119 11.6 Rate heterogeneity across sites ....................... 120 12 Complex models 121 12.1 Partition models .............................. 121 12.1.1 Partition file format ........................ 122 12.1.2 Partitioned analysis ........................ 124 12.2 Mixture models ............................... 124 12.2.1 What is the difference between partition and mixture models? . 124 12.2.2 Defining mixture models ...................... 124 12.2.3 Profile mixture models ....................... 125 12.2.4 NEXUS model file ......................... 126 12.3 Site-specific frequency models ....................... 127 12.3.1 Example usages ........................... 128 12.4 Heterotachy models ............................. 129 12.4.1 Quick usages ............................ 129 13 Polymorphism-aware models 131 13.1 Counts files ................................. 132 13.1.1 Conversion scripts ......................... 132 13.2 First running example ........................... 133 13.3 Substitution models ............................ 133 13.4 Virtual population size ........................... 134 13.5 Level of polymorphism ........................... 134 13.6 Sampling method .............................. 135 13.7 State frequency type ............................ 135 13.8 Rate heterogeneity ............................. 136 13.9 Bootstrap branch support ......................... 136 13.10Interpretation of branch lengths ...................... 136 14 Compilation guide 139 14.1 General requirements ............................ 139 CONTENTS 7 14.2 Downloading source code .......................... 140 14.3 Compiling under Linux ........................... 140 14.4 Compiling under Mac OS X ........................ 141 14.5 Compiling under Windows ......................... 142 14.6 Compiling 32-bit version .......................... 143 14.7 Compiling MPI version ........................... 144 14.8 Compiling Xeon Phi Knights Landing version .............. 145 14.9 About precompiled binaries ........................ 145 14.10Setup an Xcode project in MacOS ..................... 146 14.11This will generate a a subfolder build-xcode/iqtree.xcodeproj, which you can open in Xcode now. .................... 147 15 Frequently asked questions 149 15.1 How do I get help? ............................. 149 15.2 How do I report bug? ............................ 149 15.3 How do I interpret ultrafast bootstrap (UFBoot) support values? ... 150 15.4 How does IQ-TREE treat gap/missing/ambiguous characters? ..... 150 15.5 Can I mix DNA and protein data in a partitioned analysis? ...... 151 15.6 What is the interpretation of branch lengths when mixing codon and DNA data? ................................. 152 15.7 What is the purpose of composition test? ................. 152 15.8 What is the good number of CPU cores to use? ............. 153 15.9 How do I save time for standard bootstrap? ............... 154 15.10Why does IQ-TREE complain about the use of +ASC model? ..... 155 15.11How does IQ-TREE treat identical sequences? .............. 156 15.12What are the
Recommended publications
  • 1 A) Login to the System B) Use the Appropriate Command to Determine Your Login Shell C) Use the /Etc/Passwd File to Verify the Result of Step B
    CSE ([email protected] II-Sem) EXP-3 1 a) Login to the system b) Use the appropriate command to determine your login shell c) Use the /etc/passwd file to verify the result of step b. d) Use the ‘who’ command and redirect the result to a file called myfile1. Use the more command to see the contents of myfile1. e) Use the date and who commands in sequence (in one line) such that the output of date will display on the screen and the output of who will be redirected to a file called myfile2. Use the more command to check the contents of myfile2. 2 a) Write a “sed” command that deletes the first character in each line in a file. b) Write a “sed” command that deletes the character before the last character in each line in a file. c) Write a “sed” command that swaps the first and second words in each line in a file. a. Log into the system When we return on the system one screen will appear. In this we have to type 100.0.0.9 then we enter into editor. It asks our details such as Login : krishnasai password: Then we get log into the commands. bphanikrishna.wordpress.com FOSS-LAB Page 1 of 10 CSE ([email protected] II-Sem) EXP-3 b. use the appropriate command to determine your login shell Syntax: $ echo $SHELL Output: $ echo $SHELL /bin/bash Description:- What is "the shell"? Shell is a program that takes your commands from the keyboard and gives them to the operating system to perform.
    [Show full text]
  • Windows Command Prompt Cheatsheet
    Windows Command Prompt Cheatsheet - Command line interface (as opposed to a GUI - graphical user interface) - Used to execute programs - Commands are small programs that do something useful - There are many commands already included with Windows, but we will use a few. - A filepath is where you are in the filesystem • C: is the C drive • C:\user\Documents is the Documents folder • C:\user\Documents\hello.c is a file in the Documents folder Command What it Does Usage dir Displays a list of a folder’s files dir (shows current folder) and subfolders dir myfolder cd Displays the name of the current cd filepath chdir directory or changes the current chdir filepath folder. cd .. (goes one directory up) md Creates a folder (directory) md folder-name mkdir mkdir folder-name rm Deletes a folder (directory) rm folder-name rmdir rmdir folder-name rm /s folder-name rmdir /s folder-name Note: if the folder isn’t empty, you must add the /s. copy Copies a file from one location to copy filepath-from filepath-to another move Moves file from one folder to move folder1\file.txt folder2\ another ren Changes the name of a file ren file1 file2 rename del Deletes one or more files del filename exit Exits batch script or current exit command control echo Used to display a message or to echo message turn off/on messages in batch scripts type Displays contents of a text file type myfile.txt fc Compares two files and displays fc file1 file2 the difference between them cls Clears the screen cls help Provides more details about help (lists all commands) DOS/Command Prompt help command commands Source: https://technet.microsoft.com/en-us/library/cc754340.aspx.
    [Show full text]
  • Don't Trust Traceroute (Completely)
    Don’t Trust Traceroute (Completely) Pietro Marchetta, Valerio Persico, Ethan Katz-Bassett Antonio Pescapé University of Southern California, CA, USA University of Napoli Federico II, Italy [email protected] {pietro.marchetta,valerio.persico,pescape}@unina.it ABSTRACT In this work, we propose a methodology based on the alias resolu- tion process to demonstrate that the IP level view of the route pro- vided by traceroute may be a poor representation of the real router- level route followed by the traffic. More precisely, we show how the traceroute output can lead one to (i) inaccurately reconstruct the route by overestimating the load balancers along the paths toward the destination and (ii) erroneously infer routing changes. Categories and Subject Descriptors C.2.1 [Computer-communication networks]: Network Architec- ture and Design—Network topology (a) Traceroute reports two addresses at the 8-th hop. The common interpretation is that the 7-th hop is splitting the traffic along two Keywords different forwarding paths (case 1); another explanation is that the 8- th hop is an RFC compliant router using multiple interfaces to reply Internet topology; Traceroute; IP alias resolution; IP to Router to the source (case 2). mapping 1 1. INTRODUCTION 0.8 Operators and researchers rely on traceroute to measure routes and they assume that, if traceroute returns different IPs at a given 0.6 hop, it indicates different paths. However, this is not always the case. Although state-of-the-art implementations of traceroute al- 0.4 low to trace all the paths
    [Show full text]
  • “Log” File in Stata
    Updated July 2018 Creating a “Log” File in Stata This set of notes describes how to create a log file within the computer program Stata. It assumes that you have set Stata up on your computer (see the “Getting Started with Stata” handout), and that you have read in the set of data that you want to analyze (see the “Reading in Stata Format (.dta) Data Files” handout). A log file records all your Stata commands and output in a given session, with the exception of graphs. It is usually wise to retain a copy of the work that you’ve done on a given project, to refer to while you are writing up your findings, or later on when you are revising a paper. A log file is a separate file that has either a “.log” or “.smcl” extension. Saving the log as a .smcl file (“Stata Markup and Control Language file”) keeps the formatting from the Results window. It is recommended to save the log as a .log file. Although saving it as a .log file removes the formatting and saves the output in plain text format, it can be opened in most text editing programs. A .smcl file can only be opened in Stata. To create a log file: You may create a log file by typing log using ”filepath & filename” in the Stata Command box. On a PC: If one wanted to save a log file (.log) for a set of analyses on hard disk C:, in the folder “LOGS”, one would type log using "C:\LOGS\analysis_log.log" On a Mac: If one wanted to save a log file (.log) for a set of analyses in user1’s folder on the hard drive, in the folder “logs”, one would type log using "/Users/user1/logs/analysis_log.log" If you would like to replace an existing log file with a newer version add “replace” after the file name (Note: PC file path) log using "C:\LOGS\analysis_log.log", replace Alternately, you can use the menu: click on File, then on Log, then on Begin.
    [Show full text]
  • Basic STATA Commands
    Summer School on Capability and Multidimensional Poverty OPHI-HDCA, 2011 Oxford Poverty and Human Development Initiative (OPHI) http://ophi.qeh.ox.ac.uk Oxford Dept of International Development, Queen Elizabeth House, University of Oxford Basic STATA commands Typical STATA window Review Results Variables Commands Exploring your data Create a do file doedit Change your directory cd “c:\your directory” Open your database use database, clear Import from Excel (csv file) insheet using "filename.csv" Condition (after the following commands) if var1==3 or if var1==”male” Equivalence symbols: == equal; ~= not equal; != not equal; > greater than; >= greater than or equal; < less than; <= less than or equal; & and; | or. Weight [iw=weight] or [aw=weight] Browse your database browse Look for a variables lookfor “any word/topic” Summarize a variable (mean, standard su variable1 variable2 variable3 deviation, min. and max.) Tabulate a variable (per category) tab variable1 (add a second variables for cross tabs) Statistics for variables by subgroups tabstat variable1 variable2, s(n mean) by(group) Information of a variable (coding) codebook variable1, tab(99) Keep certain variables (use drop for the keep var1 var2 var3 opposite) Save a dataset save filename, [replace] Summer School on Capability and Multidimensional Poverty OPHI-HDCA, 2011 Creating Variables Generate a new variable (a number or a gen new_variable = 1 combinations of other variables) gen new_variable = variable1+ variable2 Generate a new variable conditional gen new_variable
    [Show full text]
  • Forest Quickstart Guide for Linguists
    Forest Quickstart Guide for Linguists Guido Vanden Wyngaerd [email protected] June 28, 2020 Contents 1 Introduction 1 2 Loading Forest 2 3 Basic Usage 2 4 Adjusting node spacing 4 5 Triangles 7 6 Unlabelled nodes 9 7 Horizontal alignment of terminals 10 8 Arrows 11 9 Highlighting 14 1 Introduction Forest is a package for drawing linguistic (and other) tree diagrams de- veloped by Sašo Živanović. This manual provides a quickstart guide for linguists with just the essential things that you need to get started. More 1 extensive documentation is available from the CTAN-archive. Forest is based on the TikZ package; more information about its commands, in par- ticular those controlling the appearance of the nodes, the arrows, and the highlighting can be found in the TikZ documentation. 2 Loading Forest In your preamble, put \usepackage[linguistics]{forest} The linguistics option makes for nice trees, in which the branches meet above the two nodes that they join; it will also align the example number (provided by linguex) with the top of the tree: (1) CP C IP I VP V NP 3 Basic Usage Forest uses a familiar labelled brackets syntax. The code below will out- put the tree in (1) above (\ex. requires the linguex package and provides the example number): \ex. \begin{forest} [CP[C][IP[I][VP[V][NP]]]] \end{forest} Forest will parse the above code without problem, but you are likely to soon get lost in your labelled brackets with more complicated trees if you write the code this way. The better alternative is to arrange the nodes over multiple lines: 2 \ex.
    [Show full text]
  • Treebase: an R Package for Discovery, Access and Manipulation of Online Phylogenies
    Methods in Ecology and Evolution 2012, 3, 1060–1066 doi: 10.1111/j.2041-210X.2012.00247.x APPLICATION Treebase: an R package for discovery, access and manipulation of online phylogenies Carl Boettiger1* and Duncan Temple Lang2 1Center for Population Biology, University of California, Davis, CA,95616,USA; and 2Department of Statistics, University of California, Davis, CA,95616,USA Summary 1. The TreeBASE portal is an important and rapidly growing repository of phylogenetic data. The R statistical environment has also become a primary tool for applied phylogenetic analyses across a range of questions, from comparative evolution to community ecology to conservation planning. 2. We have developed treebase, an open-source software package (freely available from http://cran.r-project. org/web/packages/treebase) for the R programming environment, providing simplified, programmatic and inter- active access to phylogenetic data in the TreeBASE repository. 3. We illustrate how this package creates a bridge between the TreeBASE repository and the rapidly growing collection of R packages for phylogenetics that can reduce barriers to discovery and integration across phyloge- netic research. 4. We show how the treebase package can be used to facilitate replication of previous studies and testing of methods and hypotheses across a large sample of phylogenies, which may help make such important reproduc- ibility practices more common. Key-words: application programming interface, database, programmatic, R, software, TreeBASE, workflow include, but are not limited to, ancestral state reconstruction Introduction (Paradis 2004; Butler & King 2004), diversification analysis Applications that use phylogenetic information as part of their (Paradis 2004; Rabosky 2006; Harmon et al.
    [Show full text]
  • What Is UNIX? the Directory Structure Basic Commands Find
    What is UNIX? UNIX is an operating system like Windows on our computers. By operating system, we mean the suite of programs which make the computer work. It is a stable, multi-user, multi-tasking system for servers, desktops and laptops. The Directory Structure All the files are grouped together in the directory structure. The file-system is arranged in a hierarchical structure, like an inverted tree. The top of the hierarchy is traditionally called root (written as a slash / ) Basic commands When you first login, your current working directory is your home directory. In UNIX (.) means the current directory and (..) means the parent of the current directory. find command The find command is used to locate files on a Unix or Linux system. find will search any set of directories you specify for files that match the supplied search criteria. The syntax looks like this: find where-to-look criteria what-to-do All arguments to find are optional, and there are defaults for all parts. where-to-look defaults to . (that is, the current working directory), criteria defaults to none (that is, select all files), and what-to-do (known as the find action) defaults to ‑print (that is, display the names of found files to standard output). Examples: find . –name *.txt (finds all the files ending with txt in current directory and subdirectories) find . -mtime 1 (find all the files modified exact 1 day) find . -mtime -1 (find all the files modified less than 1 day) find . -mtime +1 (find all the files modified more than 1 day) find .
    [Show full text]
  • NASP: an Accurate, Rapid Method for the Identification of Snps in WGS Datasets That Supports Flexible Input and Output Formats Jason Sahl
    Himmelfarb Health Sciences Library, The George Washington University Health Sciences Research Commons Environmental and Occupational Health Faculty Environmental and Occupational Health Publications 8-2016 NASP: an accurate, rapid method for the identification of SNPs in WGS datasets that supports flexible input and output formats Jason Sahl Darrin Lemmer Jason Travis James Schupp John Gillece See next page for additional authors Follow this and additional works at: http://hsrc.himmelfarb.gwu.edu/sphhs_enviro_facpubs Part of the Bioinformatics Commons, Integrative Biology Commons, Research Methods in Life Sciences Commons, and the Systems Biology Commons APA Citation Sahl, J., Lemmer, D., Travis, J., Schupp, J., Gillece, J., Aziz, M., & +several additional authors (2016). NASP: an accurate, rapid method for the identification of SNPs in WGS datasets that supports flexible input and output formats. Microbial Genomics, 2 (8). http://dx.doi.org/10.1099/mgen.0.000074 This Journal Article is brought to you for free and open access by the Environmental and Occupational Health at Health Sciences Research Commons. It has been accepted for inclusion in Environmental and Occupational Health Faculty Publications by an authorized administrator of Health Sciences Research Commons. For more information, please contact [email protected]. Authors Jason Sahl, Darrin Lemmer, Jason Travis, James Schupp, John Gillece, Maliha Aziz, and +several additional authors This journal article is available at Health Sciences Research Commons: http://hsrc.himmelfarb.gwu.edu/sphhs_enviro_facpubs/212 Methods Paper NASP: an accurate, rapid method for the identification of SNPs in WGS datasets that supports flexible input and output formats Jason W. Sahl,1,2† Darrin Lemmer,1† Jason Travis,1 James M.
    [Show full text]
  • PC23 and PC43 Desktop Printer User Manual Document Change Record This Page Records Changes to This Document
    PC23 | PC43 Desktop Printer PC23d, PC43d, PC43t User Manual Intermec by Honeywell 6001 36th Ave.W. Everett, WA 98203 U.S.A. www.intermec.com The information contained herein is provided solely for the purpose of allowing customers to operate and service Intermec-manufactured equipment and is not to be released, reproduced, or used for any other purpose without written permission of Intermec by Honeywell. Information and specifications contained in this document are subject to change without prior notice and do not represent a commitment on the part of Intermec by Honeywell. © 2012–2014 Intermec by Honeywell. All rights reserved. The word Intermec, the Intermec logo, Fingerprint, Ready-to-Work, and SmartSystems are either trademarks or registered trademarks of Intermec by Honeywell. For patent information, please refer to www.hsmpats.com Wi-Fi is a registered certification mark of the Wi-Fi Alliance. Microsoft, Windows, and the Windows logo are registered trademarks of Microsoft Corporation in the United States and/or other countries. Bluetooth is a trademark of Bluetooth SIG, Inc., U.S.A. The products described herein comply with the requirements of the ENERGY STAR. As an ENERGY STAR partner, Intermec Technologies has determined that this product meets the ENERGY STAR guidelines for energy efficiency. For more information on the ENERGY STAR program, see www.energystar.gov. The ENERGY STAR does not represent EPA endorsement of any product or service. ii PC23 and PC43 Desktop Printer User Manual Document Change Record This page records changes to this document. The document was originally released as Revision 001. Version Number Date Description of Change 005 12/2014 Revised to support MR7 firmware release.
    [Show full text]
  • CS101 Lecture 8
    What is a program? What is a “Window Manager” ? What is a “GUI” ? How do you navigate the Unix directory tree? What is a wildcard? Readings: See CCSO’s Unix pages and 8-2 Applications Unix Engineering Workstations UNIX- operating system / C- programming language / Matlab Facilitate machine independent program development Computer program(software): a sequence of instructions that tells the computer what to do. A program takes raw data as input and produces information as output. System Software: • Operating Systems Unix,Windows,MacOS,VM/CMS,... • Editor Programs gedit, pico, vi Applications Software: • Translators and Interpreters gcc--gnu c compiler matlab – interpreter • User created Programs!!! 8-4 X-windows-a Window Manager and GUI(Graphical User Interface) Click Applications and follow the menus or click on an icon to run a program. Click Terminal to produce a command line interface. When the following slides refer to Unix commands it is assumed that these are entered on the command line that begins with the symbol “>” (prompt symbol). Data, information, computer instructions, etc. are saved in secondary storage (auxiliary storage) in files. Files are collected or organized in directories. Each user on a multi-user system has his/her own home directory. In Unix users and system administrators organize files and directories in a hierarchical tree. secondary storage Home Directory When a user first logs in on a computer, the user will be “in” the users home directory. To find the name of the directory type > pwd (this is an acronym for print working directory) So the user is in the directory “gambill” The string “/home/gambill” is called a path.
    [Show full text]
  • Trees, Binary Search Trees, Heaps & Applications Dr. Chris Bourke
    Trees Trees, Binary Search Trees, Heaps & Applications Dr. Chris Bourke Department of Computer Science & Engineering University of Nebraska|Lincoln Lincoln, NE 68588, USA [email protected] http://cse.unl.edu/~cbourke 2015/01/31 21:05:31 Abstract These are lecture notes used in CSCE 156 (Computer Science II), CSCE 235 (Dis- crete Structures) and CSCE 310 (Data Structures & Algorithms) at the University of Nebraska|Lincoln. This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License 1 Contents I Trees4 1 Introduction4 2 Definitions & Terminology5 3 Tree Traversal7 3.1 Preorder Traversal................................7 3.2 Inorder Traversal.................................7 3.3 Postorder Traversal................................7 3.4 Breadth-First Search Traversal..........................8 3.5 Implementations & Data Structures.......................8 3.5.1 Preorder Implementations........................8 3.5.2 Inorder Implementation.........................9 3.5.3 Postorder Implementation........................ 10 3.5.4 BFS Implementation........................... 12 3.5.5 Tree Walk Implementations....................... 12 3.6 Operations..................................... 12 4 Binary Search Trees 14 4.1 Basic Operations................................. 15 5 Balanced Binary Search Trees 17 5.1 2-3 Trees...................................... 17 5.2 AVL Trees..................................... 17 5.3 Red-Black Trees.................................. 19 6 Optimal Binary Search Trees 19 7 Heaps 19
    [Show full text]