diff options
| -rw-r--r-- | structures/rope/rope.c | 47 | ||||
| -rw-r--r-- | structures/rope/rope.h | 2 | 
2 files changed, 48 insertions, 1 deletions
| diff --git a/structures/rope/rope.c b/structures/rope/rope.c index 50c7fef..aed104b 100644 --- a/structures/rope/rope.c +++ b/structures/rope/rope.c @@ -28,6 +28,53 @@ rope* rope_new()  	return tmp;  } +void rope_debug_print_aux(root, s) +rope *root; +int s; +{ +	int i; + +	for (i = 0; i < s; i++) +		printf("|    "); + +	if (!root) { +		printf("\n"); +		return; +	} + +#ifdef ROPE_DEBUG_PARENT +	printf("[%p]\n", root->parent); +#endif + +	printf("{len:%d,str:\'%s\'}[%p]\n", root->len, root->str, root); + +	if (root->str) +		return; + +	rope_debug_print_aux(root->left, ++s); +	rope_debug_print_aux(root->right, s); + +} + +void rope_debug_print(root) +rope *root; +{ +	rope_debug_print_aux(root, 0); +} + +void rope_print(root) +rope *root; +{ +	if (!root) +		return; + +	if (root->str) +		printf("%s", root->str); + +	rope_print(root->left); +	rope_print(root->right); +} +  size_t rope_len(root)  rope *root;  { diff --git a/structures/rope/rope.h b/structures/rope/rope.h index f012cc1..86d9ae3 100644 --- a/structures/rope/rope.h +++ b/structures/rope/rope.h @@ -1,7 +1,7 @@  #ifndef ROPE_H  #define ROPE_H -typede struct rope_s rope; +typedef struct rope_s rope;  rope* rope_new();  rope* str_to_rope(char*); | 
