pspp-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 11/13] abt: New function abt_is_empty().


From: Ben Pfaff
Subject: [PATCH 11/13] abt: New function abt_is_empty().
Date: Mon, 16 Apr 2012 20:52:17 -0700

---
 src/libpspp/abt.h        |   11 +++++++++++
 tests/libpspp/abt-test.c |    1 +
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/libpspp/abt.h b/src/libpspp/abt.h
index 0e5b252..f97d957 100644
--- a/src/libpspp/abt.h
+++ b/src/libpspp/abt.h
@@ -145,6 +145,7 @@
    code and links to other resources, such as the original AA
    tree paper.  */
 
+#include <stdbool.h>
 #include <stddef.h>
 #include "libpspp/cast.h"
 
@@ -186,6 +187,8 @@ struct abt
 void abt_init (struct abt *, abt_compare_func *, abt_reaugment_func *,
                const void *aux);
 
+static inline bool abt_is_empty (const struct abt *);
+
 struct abt_node *abt_insert (struct abt *, struct abt_node *);
 void abt_insert_after (struct abt *,
                        const struct abt_node *, struct abt_node *);
@@ -203,4 +206,12 @@ void abt_reaugmented (const struct abt *, struct abt_node 
*);
 struct abt_node *abt_changed (struct abt *, struct abt_node *);
 void abt_moved (struct abt *, struct abt_node *);
 
+/* Returns true if ABT contains no nodes, false if ABT contains at least one
+   node. */
+static inline bool
+abt_is_empty (const struct abt *abt)
+{
+  return abt->root == NULL;
+}
+
 #endif /* libpspp/abt.h */
diff --git a/tests/libpspp/abt-test.c b/tests/libpspp/abt-test.c
index eae7d46..3e68637 100644
--- a/tests/libpspp/abt-test.c
+++ b/tests/libpspp/abt-test.c
@@ -371,6 +371,7 @@ check_abt (struct abt *abt, const int data[], size_t cnt)
         check (abt_node_to_element (p)->data == order[cnt - i - 1]);
       check (p == NULL);
     }
+  check (abt_is_empty (abt) == (cnt == 0));
 
   free (order);
 }
-- 
1.7.2.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]