Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
07.08.2013
Размер:
3.22 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>


struct tree_node{
	
	int key;
	double value;
	
	struct tree_node *left;
	struct tree_node *right;
};

struct sctree{
		
	int size;
	int max_size;
	int del;
	
	struct tree_node* head;
};



/*void avltree_free(struct avltree *tree)
{
	if (tree == NULL)
		return;
	avltree_free(tree->left);
	avltree_free(tree->right);
	free(tree);
}*/

/*struct sctree *sctree_lookup(struct sctree *tree, int key)
{
	while (tree != NULL) {
		if (key == tree->key) {
			return tree;
		} else if (key < tree->key) {
			tree = tree->left;
		} else {
			tree = tree->right;
		}
	}
return tree;
}*/


struct sctree *sctree_create()
{
	struct sctree *node;
	node = malloc(sizeof(*node));
	if (node != NULL) {
		
		node->del=0;
		node->size=0;
		node->max_size=0;
		node->head=NULL;
	}
return node;
}
/*
struct sctree *cstree_add(sctree *tree, int key, char *value)
{
	struct sctree *node;
	if (tree == NULL)
	{
	    return sctree_create(key, value);
	}
	
	if (key < tree->key) 
	{
	    
	    tree->left = avltree_add(tree->left,key, value);
	}
	
	else if (key > tree->key) 
	{
	    /* Insert into right subtree */
	/*    tree->right = avltree_add(tree->right,key, value);
	}
	
	tree->size++;
	if(tree->size>tree->max_size)tree->max_size=tree->size;
	return tree;
}


/*struct avltree *avltree_right_rotate(struct avltree *tree)
{
	struct avltree *left;
	left = tree->left;
	tree->left = left->right;
	left->right = tree;
	tree->height = imax2(
	avltree_height(tree->left),
	avltree_height(tree->right)) + 1;
	left->height = imax2(
	avltree_height(left->left),
	tree->height) + 1;
	return left;
}

struct avltree *avltree_left_rotate(struct avltree *tree)
{
	struct avltree *right;
	right = tree->right;
	tree->right = right->left;
	right->left = tree;
	tree->height = imax2(
	avltree_height(tree->left),
	avltree_height(tree->right)) + 1;
	right->height = imax2(
	avltree_height(right->right),
	tree->height) + 1;
	return right;
}

struct avltree *avltree_leftright_rotate(struct avltree *tree)
{
	tree->left = avltree_left_rotate(tree->left);
	return avltree_right_rotate(tree);
}

struct avltree *avltree_rightleft_rotate(struct avltree *tree)
{
	tree->right = avltree_right_rotate(tree->right);
	return avltree_left_rotate(tree);
}
*/
/*
void sctree_print(struct sctree *tree, int level)
{
	int i;
	if (tree == NULL)
		return;
	for (i = 0; i < level; i++)
		printf("\t");
	printf("%d %d\n", tree->key,tree->del);
	avltree_print_dfs(tree->left, level + 1);
	avltree_print_dfs(tree->right, level + 1);
}
*/

/*struct avltree *  avltree_traverse(struct avltree *tree,struct avltree *new)
{	
	
	if(tree == NULL) return new;
	
	new=avltree_traverse(tree->left,new);
	if(tree->value&&tree->del==0) {printf("key= %d\n", tree->key);new = avltree_add(new, tree->key, tree->value);}
	new=avltree_traverse(tree->right,new);
	
	return new;
}*/
/*
struct avltree * avltree_delete(struct avltree *tree, int x)
{	
	struct avltree *t=tree;
	struct avltree *new=NULL;
	tree=avltree_lookup(tree, x);
	tree->del=1;
	d_vert++;
	if(d_vert*2>a_vert){
		d_vert=0;
		a_vert=0;
		tree=t;
		new=avltree_traverse(tree,new);
		return new;
	}
	return t;
}*/

int main()
{
	struct sctree *a=NULL;
	a=sctree_create();
	return 0;
}

Соседние файлы в папке курсач