Enviado em 15/07/2010 - 00:01h
Gente, tou tentando expandir um pouco a idéia de árvore binária em C.
Estou tentando criar uma árvore mais complexa na qual cada nó é ligado a quantos nós filhos a memória permite. Cada nó possui quantos atributos forem possíveis.
Comecei a produzir o código hoje, mas como sou novo nisso de programar em C, não consegui dar os primeiros passos corretamente, pelo menos é o que diz o compilador. Vejam o esboço de código:
/*
============================================================================
Name : MenuArvore.c
Author : Arthur Farias
Version : 0.1
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int child_count;
Attribute * attribute;
Node * child;
} Node;
typedef struct {
char *label;
char *content;
} Attribute;
int main(void) {
return EXIT_SUCCESS;
}
// Node Operations
int append_child(Node *parent) {
Node child;
child.child_count = 0;
parent.child = (Node*) realloc (parent.child, (parent.child_count+1)*sizeof(Node));
if (parent.child != NULL) {
parent.child[parent.child_count] = child;
return EXIT_SUCCESS;
}
return !EXIT_SUCCESS;
}
int remove_child(Node *node, int child_position) {
int i;
for (i = node.child_position; i <= node.child_count; i++) {
node.child[node.child_position] = node.child[node.child_position+1];
}
parent.child = (Node*) realloc (parent.child, (parent.child_count)*sizeof(Node));
return EXIT_SUCCESS;
}
int set_attribute() { // (num_params, params (node_id, title, content))
return EXIT_SUCCESS;
}
int remove_attribute() {
return EXIT_SUCCESS;
}
Estou tentando criar uma árvore mais complexa na qual cada nó é ligado a quantos nós filhos a memória permite. Cada nó possui quantos atributos forem possíveis.
Comecei a produzir o código hoje, mas como sou novo nisso de programar em C, não consegui dar os primeiros passos corretamente, pelo menos é o que diz o compilador. Vejam o esboço de código:
/*
============================================================================
Name : MenuArvore.c
Author : Arthur Farias
Version : 0.1
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int child_count;
Attribute * attribute;
Node * child;
} Node;
typedef struct {
char *label;
char *content;
} Attribute;
int main(void) {
return EXIT_SUCCESS;
}
// Node Operations
int append_child(Node *parent) {
Node child;
child.child_count = 0;
parent.child = (Node*) realloc (parent.child, (parent.child_count+1)*sizeof(Node));
if (parent.child != NULL) {
parent.child[parent.child_count] = child;
return EXIT_SUCCESS;
}
return !EXIT_SUCCESS;
}
int remove_child(Node *node, int child_position) {
int i;
for (i = node.child_position; i <= node.child_count; i++) {
node.child[node.child_position] = node.child[node.child_position+1];
}
parent.child = (Node*) realloc (parent.child, (parent.child_count)*sizeof(Node));
return EXIT_SUCCESS;
}
int set_attribute() { // (num_params, params (node_id, title, content))
return EXIT_SUCCESS;
}
int remove_attribute() {
return EXIT_SUCCESS;
}