Dumping some WIP stuff.
This commit is contained in:
parent
983942712a
commit
ebe583f22d
|
@ -0,0 +1,18 @@
|
|||
# build a CPack driven installer package
|
||||
include(InstallRequiredSystemLibraries)
|
||||
set(CPACK_RESOURCE_FILE_LICENSE
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "${${PROJECT_NAME}_VERSION_MAJOR}")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "${${PROJECT_NAME}_VERSION_MINOR}")
|
||||
|
||||
# Debian settings
|
||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "K. Isom")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "library of data structures")
|
||||
set(CPACK_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc++1 (>= 3.7.0-1)")
|
||||
# set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION devel)
|
||||
|
||||
# actually do the thing
|
||||
set(CPACK_GENERATOR DEB)
|
||||
include (CPack)
|
|
@ -0,0 +1,12 @@
|
|||
# Set up tests.
|
||||
enable_testing()
|
||||
|
||||
# sctest tests
|
||||
add_executable(simple_suite_example test/test/simple_suite_example.cpp)
|
||||
target_link_libraries(simple_suite_example ${PROJECT_NAME}-static)
|
||||
add_test(SimpleSuite_example, simple_suite_example)
|
||||
|
||||
# math tests
|
||||
add_executable(geom2d_test test/math/geom2d_test.cpp)
|
||||
target_link_libraries(geom2d_test ${PROJECT_NAME}-static)
|
||||
add_test(geom2d_test geom2d_test)
|
|
@ -0,0 +1,20 @@
|
|||
#ifndef __ODS_LIST__
|
||||
#define __ODS_LIST__
|
||||
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
|
||||
// Lists are sequences of values.
|
||||
template <typename T>
|
||||
class List {
|
||||
public:
|
||||
virtual std::size_t size(void);
|
||||
virtual T get(std::size_t);
|
||||
virtual T set(std::size_t, T);
|
||||
virtual void add(std:size_t, T);
|
||||
virtual T remove(std::size_t);
|
||||
};
|
||||
|
||||
|
||||
#endif
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef __ODS_QUEUE__
|
||||
#define __ODS_QUEUE__
|
||||
|
||||
|
||||
// Dequeue represents a collection of elements to which we can add elements
|
||||
// and remove the next element.
|
||||
template<typename T>
|
||||
class Dequeue {
|
||||
public:
|
||||
virtual void add_first(T);
|
||||
virtual void add_last(T);
|
||||
virtual T remove_first(void);
|
||||
virtual T remove_last(void);
|
||||
virtual bool empty(void);
|
||||
};
|
||||
#endif
|
|
@ -20,3 +20,49 @@ Concerns:
|
|||
* Priority queue: elements are inserted with a priority, and the smallest
|
||||
element is removed. This function is usually called `deleteMin`.
|
||||
* LIFO queue: a stack; add and remove are called `push` and `pop`.
|
||||
* Deque: generalisation of these
|
||||
* `addFirst(x)`
|
||||
* `removeFirst(x)`
|
||||
* `addLast(x)`
|
||||
* `removeLast(x)`
|
||||
* Stack: addFirst, removeFirst
|
||||
* Queue: addLast, removeFirst
|
||||
|
||||
### List interface
|
||||
|
||||
The List interface subsumes the Queue interface. A list is just a sequence of
|
||||
values, and a Queue becomes a special case of it.
|
||||
|
||||
Interface:
|
||||
|
||||
* size()
|
||||
* get(i): get i'th element
|
||||
* set(i, x): set the i'th element to x
|
||||
* add(i, x): insert x at position i
|
||||
* remove(i): remove the i'th element
|
||||
|
||||
### USet (unordered sets)
|
||||
|
||||
USets are a collection of unique items in no particular order; this mimics a
|
||||
mathematical set.
|
||||
|
||||
Interface:
|
||||
|
||||
* `size()`: returns the number of elements in the set
|
||||
* `add(x)`: add x to the set if it doesn't already exist
|
||||
* `remove(x)`: remove x from the set if it doesn't already exist
|
||||
* `find(y)`: membership test
|
||||
|
||||
Note that y and x may be distinct objects, and only need to satisfy an
|
||||
equality test. For example, a dictionary or hashmap is created using a tuple
|
||||
`(key, value)`; `find` compares on `key` and two objects are considered equal
|
||||
if their keys match.
|
||||
|
||||
### SSet (sorted set)
|
||||
|
||||
A USet where order matters. Its interface only changes in the `find` function:
|
||||
|
||||
* `find(x)`: find the smallest y s.t. y >= x. thereby returning a useful value
|
||||
even if x isn't in the set. AKA successor search.
|
||||
|
||||
Difference between USet and SSet
|
Loading…
Reference in New Issue