#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int data;
struct TreeNode* firstChild;
struct TreeNode* nextSibling;
} TreeNode;
TreeNode* createNode(int value) {
TreeNode* newNode = (TreeNode*)malloc(sizeof(TreeNode));
newNode->data = value;
newNode->firstChild = NULL;
newNode->nextSibling = NULL;
return newNode;
}
void traverseTree(TreeNode* node) {
if (node == NULL) return;
printf("%d ", node->data);
traverseTree(node->firstChild);
traverseTree(node->nextSibling);
}
int main() {
TreeNode* root = createNode(1);
TreeNode* child1 = createNode(2);
TreeNode* child2 = createNode(3);
TreeNode* child3 = createNode(4);
TreeNode* child4 = createNode(5);
root->firstChild = child1;
child1->nextSibling = child2;
child2->nextSibling = child3;
child1->firstChild = child4;
printf("Tree traversal: ");
traverseTree(root);
printf("\n");
return 0;
}