Home > C,C++ > Algorithms and Data structures

Algorithms and Data structures

Related Categories

Dictionary of Algorithms and Data Structures  
This site provides hundreds of definitions of algorithms and data structures, and classic problems, including links to implementations, tutorials and origins.
Submitted: Sep 17, 2003
A Faster Sorting Algorithm  
The Beechick sort algorithm is two to three times faster than quick sort. Most significant digit radix sort.
Submitted: Oct 07, 2003
Data Structures and Algorithms with Object-Oriented Design Patterns in C++  
This book is about the fundamentals of data structures and algorithms--the basic elements from which large and complex software artifacts are built. This book also illustrates object-oriented design and it promotes the use of common, object-oriented design patterns. The algorithms and data structures in the book are presented in the C++ programming language.
Submitted: Aug 13, 2004
These routines implement a B-Tree data structure. I developed most of this code using Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson and Ronald L. Rivest. The code implements B-Tree and not B-Tree+ that allows you to do an in-order traversal of the data without having to lock each node. Currently the code isn't reentrant, but I plan on making it reentrant.
Submitted: Nov 21, 1999
Iterative Methods Library in C++  
A C++ template library of modern iterative methods for solving both symmetric and nonsymmetric linear systems of equations. The algorithms are fully templated in that the same source code works for dense, sparse, and distributed matrices. Solution methods include Richardson iteration, conjugate gradient (CG), Chebyshev iteration, CG squared, BiCG, BiCG stabilized, generalized minimum residual (GMRES), and quasi-minmal residual without lookahead (QMR). A user's manual is available in PostScript format.
Submitted: Jan 09, 2000
Wayne's Little Data Structures and Algorithms Library  
The algorithms in libwayne are by no means original. Many of them are taken verbatim from textbooks on data structures and algorithms, and I simply translated them into C. They include efficient and correct routines for priority queues, event-driven simulations, queues, stacks, binary trees, sets of integers, graphs (the node-edge kind), some combinatorics routines, ODE integration routines, a simple statistics package, and a matrix-vector library. Many of the routines (heap, stack, queue, bintree) can work with arbitrary objects, not just integers. Comparisons are done with pointers to comparison functions, similar to ANSI C's standard qsort.
Submitted: Jul 31, 1999
Data Structure for C  
Flexible Simple Data Structure for C.
Submitted: Dec 08, 2005
STL - Algorithm Datasheets  
This site contains all kinds of algorithms for working with data sheets. Among the categories are: Non-mutating sequence operations, Mutating sequence operations, Sorting and related operations, Generalized numeric operatioms and algorithm animations.
Submitted: Dec 20, 1999
C++ AVL Tree Template  
An AVL Tree template that treats the AVL tree nodes as abstract data structures, manupulated using abstract "handles". The template does no memory management of nodes, and places few restrictions on how the memory management can be done. Suitible for systems/kernel-level programming and embedded systems programming.
Submitted: Oct 11, 2002
Fibonacci Heap  
The fib package is an implementation of a Fibonacci Heap. A Fibonacci Heap is a very efficient heap. The cost of an insert is O(1), and the amortized cost of an extract minimum is O(lgn). You can extract an already inserted item out of order in O(lgn). The way it does this is by delaying the organization of the items until you extract.
Submitted: Nov 21, 1999
The Stony Brook Algorithm Repository  
This WWW page is intended to serve as a comprehensive collection of algorithm implementations for over seventy of the most fundamental problems in combinatorial algorithms. The problem taxonomy, implementations, and supporting material are all drawn from my book The Algorithm Design Manual. Since the practical person is more often looking for a program than an algorithm, we provide pointers to solid implementations of useful algorithms, when they are available.
Submitted: Jan 18, 1998
Pointers, References and Values  
Passing parameters, returning results, and storing member variables with musings on good C++ style.
Submitted: Feb 10, 2003
Turing Machine (C++ Implementation)  
The C++-program simulates a Turing Machine (TM). TM is defined by input files : metafile, states file, alphabet file, transition file, input word(s) file(s).Each row of metafile contains data related to some Turing machine (number of tapes, names of states file, alphabet file, transition file, input word(s) file(s)). States file contains list of initial, halting and internal states. Alphabet contains list of empty, input and internal symbols. Each row of transition contains some transition rule. Each row of input word(s) contains input word for some tape. A Turing Machine example (Recognition of Palindromes) from 'The Design and Analysis of Computer Algorithms [1976]' by A.V.Aho, J.E.Hopcroft, J.D.Ullman (See examples 1.8, 1.9) is used as a demo sample of Turing Machine.
Submitted: Dec 09, 2002
STL Tutorial written by Jak Kirman's  
Jak Kirman's (self described) "A modest STL tutorial" is archived on this page and was rescued from another site because two other copies of it on the web were falling into disrepair. The tutorial provides STL examples, STL components and the philosophy of STL. Code samples and diagrams are provided in this excellent tutorial designed for introductory OOP programmers.
Submitted: Jan 02, 2002
Insertion for arrays  
Insertion algorithm for arrays (C source available).
Submitted: Dec 09, 1999
You may have read about how much faster and better skiplists are over normal binary trees. After reading about skiplists, I immediately had to go out and do some performance testing as people were reporting that skiplists used less memory and performed better than binary trees. I had already writen a B-Tree library, so I went and looked at various skiplist implementations. After none of them being easy to use, I decided to write my own implementation.
Submitted: Nov 21, 1999
The Sequential Object-oriented sim PLEX class library is a C++ library of primal and dual simplex algorithms for solving linear programming problems. It consists of elementary classes for general purposes, linear algebra classes providing basic data types for regular and sparse linear algebra computations, and algorithmic classes implementing a wide variety of algorithms for solving numerical problems and subproblems. The elementary classes include Array, CmdLine, DataArray, DataHashTable, DataSet, IdElement, IdList, IsElement, IsList, NameSet, Random, and Timer classes as well as classes for data objects and sorting functions. The linear algebra classes include those for dynamic index sets, dynamic sparse vectors, dynamic vectors, index sets, LP columns, sets of LP columns, sets of LP rows, semi-sparse vectors, parts of semi-sparse vectors, sparse vectors, sparse vector sets, sparse unit vectors, vectors with updates, and dense vectors.
Submitted: Jan 11, 2000
C AVL Tree "Generic Package"  
Two C header files that use the C Preprocessor to define code for the AVL tree data structure in a generic and reusable way. The AVL tree nodes are treated as abstract data structures, and manupulated using abstract "handles". The generic code does no memory management of nodes, and places few restrictions on how the memory management can be done. Suitible for systems/kernel-level programming and embedded systems programming.
Submitted: Oct 11, 2002
LFC is a general C++ class library/framework, trying to provide OO abstractions for various data structures and algorithms.
Submitted: Jan 02, 2002
Insertion for lists  
Searching algorithms - Insertion for lists (C source available).
Submitted: Dec 09, 1999
This is a tool for the development of numerical algorithms delivering highly accurate and automatically verified results. It provides a large number of predefined numerical data types and operators. These types are implemented as C++ classes. Thus, C-XSC allows high-level programming of numerical applications in C and C++. The C-XSC package is available for many computers with a C++ compiler translating the AT&T language standard 2.0.
Submitted: Jan 19, 2000
Stochastic Differential Equation Software  
We retail software for numerical solution of systems of stochastic differential equations such as arise in physics, engineering and mathematical finance. We provide free trials and other free programs.
Submitted: Mar 19, 2007

  Privacy - Trademarks - Feedback - Terms of Use Copyright The MathWorks, Inc.