Esempio n. 1
0
void get_vertical_sum(struct treenode *root, struct listnode *node) {
	if(root) {
		node->sum += root->data;

		if(node->prev == NULL) {
			node->prev = getlistnode();
			node->prev->next = node;
		}
		get_vertical_sum(root->left, node->prev);

		if(node->next== NULL) {
			node->next = getlistnode();
			node->next->prev = node;
		}
		get_vertical_sum(root->right, node->next);
	}
}
Esempio n. 2
0
void main() {
	struct treenode *root = getnode(5);
	root->left = getnode(4);
	root->left->left = getnode(3);
	root->left->right= getnode(8);
	root->right= getnode(7);
	root->right->left = getnode(6);
	root->right->right= getnode(9);

	struct listnode *node = getlistnode();
	get_vertical_sum(root, node);
	printsum(node);
}
Esempio n. 3
0
struct treenode * make_tree() {
	int index;
	struct treenode * root, *cur;
	cur = root = NULL;
	struct listnode *cur_child;

	if(root == NULL) {
		cur = root = get_treenode(i);
	}

	cur_child = cur->child_list;
	int children;
	children = cur->info.reports;

	while(children > 0) {
		getlistnode(index++);	
		children--;
	}
}
Esempio n. 4
0
void insertedge(node* start,char A,char B)
{
    if(start==NULL)
    {
        printf("\nNo nodes in the graph");
        return;
    }
    node* locA=NULL;
    findnode(start,A,&locA);
    node* locB=NULL;
    findnode(start,B,&locB);
    if(locA==NULL || locB==NULL)
    {
        printf("\nNodes not present in graph!!!");
        return;
    }
    listnode* temp=NULL;
    getlistnode(locB,&temp);
    temp->next=locA->adj;
    locA->adj=temp;
}