add recursive print to node struct

This commit is contained in:
Nayan Sawyer
2025-11-16 12:39:00 -05:00
parent dc937a738f
commit 2ce2712765
2 changed files with 13 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
#include "binary-tree.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Node* create_node(int data){
Node* node = malloc(sizeof(Node));
@@ -21,14 +22,20 @@ void free_node(Node* node){
}
void print_node(Node* node){
_recursive_print_node(node, 0);
}
void _recursive_print_node(Node* node, int level){
if (node->right != NULL) {
printf("-");
print_node(node->right);
_recursive_print_node(node->right, level + 1);
}
printf("%d", node->data);
char* dashes = malloc(sizeof(char) * (level+1));
memset(dashes, '-', level);
dashes[level] = '\0';
printf("%s%d\n", dashes, node->data);
free(dashes);
if (node->left != NULL) {
printf("-");
print_node(node->left);
_recursive_print_node(node->left, level + 1);
}
}

View File

@@ -17,6 +17,7 @@ Node* create_node(int data);
void free_node(Node* node);
void print_node(Node* node);
void _recursive_print_node(Node* node, int level);
Node* get_left(Node* node);
Node* get_right(Node* node);