summaryrefslogtreecommitdiffhomepage
path: root/examples
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2020-09-02 19:49:51 +0200
committerTyge Løvset <[email protected]>2020-09-02 19:49:51 +0200
commitaf12926547b1a09b4513ba149d13ea9f84d4c528 (patch)
tree954ab763d10a2c5558163645004b9c11ed63b5d1 /examples
parent1b46028f4636c78af40c37dbc55d76598996a5b7 (diff)
downloadSTC-modified-af12926547b1a09b4513ba149d13ea9f84d4c528.tar.gz
STC-modified-af12926547b1a09b4513ba149d13ea9f84d4c528.zip
Added cqueue.h and cstack.h adapters. Updated cpqueue.h API to be more consistent.
Diffstat (limited to 'examples')
-rw-r--r--examples/complex.c22
-rw-r--r--examples/geek7.c8
-rw-r--r--examples/heap.c6
-rw-r--r--examples/inits.c4
-rw-r--r--examples/priority.c4
-rw-r--r--examples/stack.c18
6 files changed, 40 insertions, 22 deletions
diff --git a/examples/complex.c b/examples/complex.c
index 08a3b505..8810bac5 100644
--- a/examples/complex.c
+++ b/examples/complex.c
@@ -6,32 +6,32 @@
void check_destroy(float* v) {printf("destroy %g\n", *v);}
declare_carray(f, float, check_destroy); // normally omit the last argument - float type need no destroy.
-declare_clist(t2, carray2f, carray2f_destroy, c_no_compare);
-declare_cmap(il, int, clist_t2, clist_t2_destroy);
-declare_cmap_strkey(sm, cmap_il, cmap_il_destroy);
+declare_clist(y, carray2f, carray2f_destroy, c_no_compare);
+declare_cmap(g, int, clist_y, clist_y_destroy);
+declare_cmap_strkey(s, cmap_g, cmap_g_destroy);
int main() {
int xdim = 4, ydim = 6;
int x = 1, y = 5, tableKey = 42;
const char* strKey = "first";
- cmap_sm theMap = cmap_init;
+ cmap_s myMap = cmap_init;
{ // Construct.
carray2f table = carray2f_make(ydim, xdim, 0.f);
printf("table: (%zu, %zu)\n", carray2_ydim(table), carray2_xdim(table));
- clist_t2 tableList = clist_init;
+ clist_y tableList = clist_init;
// Put in some data.
- cmap_il listMap = cmap_init;
+ cmap_g listMap = cmap_init;
*carray2f_at(&table, y, x) = 3.1415927; // table[y][x]
- clist_t2_push_back(&tableList, table);
- cmap_il_put(&listMap, tableKey, tableList);
- cmap_sm_put(&theMap, strKey, listMap);
+ clist_y_push_back(&tableList, table);
+ cmap_g_put(&listMap, tableKey, tableList);
+ cmap_s_put(&myMap, strKey, listMap);
}
{ // Access the data entry
- carray2f table = clist_back(cmap_il_find(&cmap_sm_find(&theMap, strKey)->value, tableKey)->value);
+ carray2f table = *clist_y_back(&cmap_g_find(&cmap_s_find(&myMap, strKey)->value, tableKey)->value);
printf("value (%d, %d) is: %f\n", y, x, *carray2f_at(&table, y, x));
}
- cmap_sm_destroy(&theMap); // free up the whole shebang!
+ c_destroy(cmap_s, &myMap); // free up everything!
} \ No newline at end of file
diff --git a/examples/geek7.c b/examples/geek7.c
index 2ff33223..9004a1a8 100644
--- a/examples/geek7.c
+++ b/examples/geek7.c
@@ -29,10 +29,10 @@ After inserting all the elements excluding the ones which are to be deleted, Pop
declare_cmap(ii, int, int);
declare_cvec(i, int);
-declare_cpqueue(i, >, cvec);
+declare_cpqueue(i, cvec_i, >);
-// Find k minimum element from arr[0..m-1] after deleting
-// elements from del[0..n-1]
+// Find k minimum element from arr[0..m-1] after deleting
+// elements from del[0..n-1]
void findElementsAfterDel(int arr[], int m, int del[],
int n, int k)
{
@@ -68,7 +68,7 @@ void findElementsAfterDel(int arr[], int m, int del[],
// Print top k elements in the min heap
for (int i = 0; i < k; ++i) {
- printf("%d ", cpqueue_i_top(heap));
+ printf("%d ", *cpqueue_i_top(&heap));
// Pop the top element
cpqueue_i_pop(&heap);
diff --git a/examples/heap.c b/examples/heap.c
index 0ff6e059..5917dd30 100644
--- a/examples/heap.c
+++ b/examples/heap.c
@@ -5,7 +5,7 @@
#include <stc/cpqueue.h>
declare_cvec(f, float);
-declare_cpqueue(f, >, cvec);
+declare_cpqueue(f, cvec_f, >);
int main()
{
@@ -24,7 +24,7 @@ int main()
printf("Built priority queue: %f secs\n", (clock() - start) / (float) CLOCKS_PER_SEC);
for (int i=0; i<M; ++i)
- printf("%.0f ", cpqueue_f_top(pq)), cpqueue_f_pop(&pq);
+ printf("%.0f ", *cpqueue_f_top(&pq)), cpqueue_f_pop(&pq);
start = clock();
for (int i=M; i<N; ++i)
@@ -38,7 +38,7 @@ int main()
printf("pushed PQ: %f secs\n", (clock() - start) / (float) CLOCKS_PER_SEC);
for (int i=0; i<M; ++i)
- printf("%.0f ", cpqueue_f_top(pq)), cpqueue_f_pop(&pq);
+ printf("%.0f ", *cpqueue_f_top(&pq)), cpqueue_f_pop(&pq);
puts("");
cpqueue_f_destroy(&pq);
diff --git a/examples/inits.c b/examples/inits.c
index 3d7490d5..d7b7a37b 100644
--- a/examples/inits.c
+++ b/examples/inits.c
@@ -17,7 +17,7 @@ declare_cvec(ip, ipair_t, c_default_destroy, ipair_compare);
declare_clist(ip, ipair_t, c_default_destroy, ipair_compare);
declare_cvec(f, float);
-declare_cpqueue(f, >, cvec);
+declare_cpqueue(f, cvec_f, >);
int main(void) {
@@ -36,7 +36,7 @@ int main(void) {
// sorted:
while (cvec_size(floats) > 0) {
- printf("%.1f ", cpqueue_f_top(floats));
+ printf("%.1f ", *cpqueue_f_top(&floats));
cpqueue_f_pop(&floats);
}
puts("\n");
diff --git a/examples/priority.c b/examples/priority.c
index 0204779d..82e78621 100644
--- a/examples/priority.c
+++ b/examples/priority.c
@@ -7,7 +7,7 @@
#include <stc/crandom.h>
declare_cvec(i, int64_t);
-declare_cpqueue(i, >, cvec); // min-heap (increasing values)
+declare_cpqueue(i, cvec_i, >); // min-heap (increasing values)
int main() {
size_t N = 10000000;
@@ -28,7 +28,7 @@ int main() {
// Extract the hundred smallest.
for (int i=0; i<100; ++i) {
- printf("%zd ", cpqueue_i_top(heap));
+ printf("%zd ", *cpqueue_i_top(&heap));
cpqueue_i_pop(&heap);
}
cpqueue_i_destroy(&heap);
diff --git a/examples/stack.c b/examples/stack.c
new file mode 100644
index 00000000..2aa8364b
--- /dev/null
+++ b/examples/stack.c
@@ -0,0 +1,18 @@
+
+#include <stc/cstack.h>
+#include <stdio.h>
+
+declare_cvec(i, int);
+declare_cstack(i, cvec_i);
+
+int main() {
+ cstack_i stack = cstack_i_init();
+
+ for (int i=0; i<100; ++i)
+ cstack_i_push(&stack, i*i);
+
+ for (int i=0; i<90; ++i)
+ cstack_i_pop(&stack);
+
+ printf("top: %d\n", *cstack_i_top(&stack));
+} \ No newline at end of file