Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "treeSet.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct TreeSet * createTreeSet() {
- struct TreeSet * newTreeSet=(struct TreeSet *) calloc(1,sizeof(struct TreeSet));
- if(newTreeSet == NULL) {
- fprinttf(stderr,"\n Nu s a putut aloca memorie pentru TreeSet!\n");
- }
- return newTreeSet;
- }
- unsigned treeSetSize(struct TreeSet * set){
- return set->size;
- }
- char treeSetIsEmpty(struct TreeSet * set){
- if(set->size == 0) {
- return 1;
- }else{
- return 0;
- }
- }
- void treeSetPut(struct TreeSet * set, struct Server server) {
- if(treeSetIsEmpty(set)) {
- struct TreeNode * newNode = (struct TreeNode *) malloc(sizeof(struct TreeNode));
- newNode->value=server;
- newNode->parent=newNode->left=newNode->right=NULL;
- set->root=newNode;
- set->size++;
- return;
- }
- struct TreeNode * tmpNode = set->root;
- while(1) {
- if(compare(tmpNode->value,server) == 0) {
- return;
- }
- if((compare(tmpNode->value,server) > 0) && (tmpNode->left != NULL)) {
- tmpNode=tmpNode->left;
- }
- if((compare(tmpNode->value,server) > 0) && (tmpNode->left == NULL)) {
- struct TreeNode * newNode = (struct TreeNode *) malloc(sizeof(struct TreeNode));
- newNode->value = server;
- newNode->parent = tmpNode;
- tmpNode->left = newNode;
- newNode->left=newNode->right=NULL;
- set->size++;
- return;
- }
- if((compare(tmpNode->value,server) < 0) && (tmpNode->right == NULL)) {
- struct TreeNode * newNode = (struct TreeNode *) malloc(sizeof(struct TreeNode));
- newNode->value = server;
- newNode->parent = tmpNode;
- tmpNode->right = newNode;
- newNode->right = newNode->left = NULL;
- set->size++;
- return;
- }
- if((compare(tmpNode->value,server) < 0) && (tmpNode->right != NULL)) {
- tmpNode = tmpNode->right;
- }
- }
- }
- char treeSetContains(struct TreeSet * set, struct Server server) {
- struct TreeNode * tmpNode = set->root;
- while(1) {
- if(compare(tmpNode->value,server) == 0) {
- return;
- }
- if(compare(tmpNode->value,server) > 0) {
- tmpNode = tmpNode->left;
- }
- if(compare(tmpNode->value,server) < 0) {
- tmpNode = tmpNode->right;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement