Esempio n. 1
0
int main(void)
{
	Book array1[MAX];
	int *array2[MAX];
	int i;
	int id;
	int val;
	char name[10];
	Book res1;
	int *res2;

	for(i = 0; i < MAX; i++){
		printf("input info of book\n");
		scanf("%d", &id);
		scanf("%s", name);
		if(insert_struct(&(array1[i]), id, name) == -1)
			exit(1);

		printf("input int\n");
		scanf("%d", &val);
		if(insert_int(&(array2[i]), val) == -1)
			exit(1);
	}

	res1 = (Book)max((void **)array1, MAX, cmp_struct);
	res2 = (int *)max((void **)array2, MAX, cmp_int);

	printf("the max of books : %d, %s\n", res1->id, res1->name);
	printf("the max of int : %d\n", *res2);

	return 0;
}
Esempio n. 2
0
static GHashTable *
build_network_attributes (const gchar *username,
                          const gchar *host,
                          const gchar *domain,
                          const gchar *protocol,
                          const gchar *object,
                          const gchar *authtype,
                          guint32 port)
{
    GHashTable *attributes;

    attributes = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);

    if (username)
        insert_string ("user", username, &attributes);
    if (host)
        insert_string ("server", host, &attributes);
    if (domain)
        insert_string ("domain", domain, &attributes);
    if (protocol)
        insert_string ("protocol", protocol, &attributes);
    if (object)
        insert_string ("object", object, &attributes);
    if (authtype)
        insert_string ("authtype", authtype, &attributes);
    if (port != 0)
        insert_int ("port", (gint)port, &attributes);

    return attributes;
}
Esempio n. 3
0
static uint8_t * insert_point_val(uint8_t *buffer, osens_point_t *point)
{
    uint8_t *pbuf = buffer;
    switch (point->type)
    {
    case OSENS_DT_U8:
        pbuf = insert_uint(pbuf,(uint64_t) point->value.u8);
        break;
    case OSENS_DT_U16:
        pbuf = insert_uint(pbuf,(uint64_t) point->value.u16);
        break;
    case OSENS_DT_U32:
        pbuf = insert_uint(pbuf,(uint64_t) point->value.u32);
        break;
    case OSENS_DT_U64:
        pbuf = insert_uint(pbuf,(uint64_t) point->value.u64);
        break;
    case OSENS_DT_S8:
        pbuf = insert_int(pbuf,(uint64_t) point->value.s8);
        break;
    case OSENS_DT_S16:
        pbuf = insert_int(pbuf,(uint64_t) point->value.s16);
        break;
    case OSENS_DT_S32:
        pbuf = insert_int(pbuf,(uint64_t) point->value.s32);
        break;
    case OSENS_DT_S64:
        pbuf = insert_int(pbuf,(uint64_t) point->value.s64);
        break;
    case OSENS_DT_FLOAT:
        pbuf = insert_float(pbuf,point->value.fp32);
        break;
    case OSENS_DT_DOUBLE:
        pbuf = insert_float(pbuf,(float) point->value.fp64);
        break;
    default:
        break;
    }

    return pbuf;
}
void EdgeList::add_edge(int v0, int v1, int i0, int i1, int next_f, int next_d,
		double sm)
{
	DEBUG_START;
	DEBUG_PRINT("add_edge(v0 = %d, v1 = %d, next_f = %d, next_d = %d, \
			sm = %lf)\n", v0, v1, next_f, next_d, sm);

	if (v0 > v1)
	{
		int tmp = v0;
		v0 = v1;
		v1 = tmp;
	}

	int first = 0; // Первый элемент в массиве
	int last = num; // Последний элемент в массиве

	while (first < last)
	{
		int mid = (first + last) / 2;
		if (sm <= scalar_mult[mid])
		{
			last = mid;
		}
		else
		{
			first = mid + 1;
		}
	}
	insert_int(edge0, num, last, v0);
	insert_int(edge1, num, last, v1);
	insert_int(ind0, num, last, i0);
	insert_int(ind1, num, last, i1);
	insert_int(next_facet, num, last, next_f);
	insert_int(next_direction, num, last, next_d);
	insert_double(scalar_mult, num, last, sm);
	insert_int(id_v_new, num, last, -1);
	insert_bool(isUsed, num, last, false);

	++num;
	DEBUG_END;
}
Esempio n. 5
0
int main(void){
	struct tree tr;
	tr.root = NULL;
	tr.cmpfunc = intcmpfunc;

	insert_int(&tr, 15);
	insert_int(&tr, 5);
	insert_int(&tr, 3);
	insert_int(&tr, 12);
	insert_int(&tr, 10);
	insert_int(&tr, 6);
	insert_int(&tr, 7);
	insert_int(&tr, 16);
	insert_int(&tr, 20);
	insert_int(&tr, 18);
	insert_int(&tr, 23);

	findthree(&tr);

	traverse(tr.root, print_data);

	print_successor(tr.root->left);

	rb_delete(&tr, tr.root->left);
	rb_delete(&tr, tr.root->left->right);
	rb_delete(&tr, tr.root->left->left);
	/*left_rotate(&tr, tr.root->right);
	right_rotate(&tr, tr.root->right);*/

	traverse(tr.root, print_data);

	destroy_node(tr.root);

	return 0;
}
Esempio n. 6
0
int main(int argc, char **argv) {

BiTree             tree;
BiTreeNode         *node;

int                i;

/*****************************************************************************
*                                                                            *
*  Initialize the binary tree.                                               *
*                                                                            *
*****************************************************************************/

bitree_init(&tree, free);

/*****************************************************************************
*                                                                            *
*  Perform some binary tree operations.                                      *
*                                                                            *
*****************************************************************************/

fprintf(stdout, "Inserting some nodes\n");

if (insert_int(&tree, 20) != 0)
   return 1;

if (insert_int(&tree, 10) != 0)
   return 1;

if (insert_int(&tree, 30) != 0)
   return 1;

if (insert_int(&tree, 15) != 0)
   return 1;

if (insert_int(&tree, 25) != 0)
   return 1;

if (insert_int(&tree, 70) != 0)
   return 1;

if (insert_int(&tree, 80) != 0)
   return 1;

if (insert_int(&tree, 23) != 0)
   return 1;

if (insert_int(&tree, 26) != 0)
   return 1;

if (insert_int(&tree, 5) != 0)
   return 1;

fprintf(stdout, "Tree size is %d\n", bitree_size(&tree));
fprintf(stdout, "(Preorder traversal)\n");
print_preorder(bitree_root(&tree));

i = 30;

if ((node = search_int(&tree, i)) == NULL) {

   fprintf(stdout, "Could not find %03d\n", i);

   }

else {

   fprintf(stdout, "Found %03d...Removing the left tree below it\n", i);
   bitree_rem_left(&tree, node);
   fprintf(stdout, "Tree size is %d\n", bitree_size(&tree));
   fprintf(stdout, "(Preorder traversal)\n");
   print_preorder(bitree_root(&tree));

}

i = 99;

if ((node = search_int(&tree, i)) == NULL) {

   fprintf(stdout, "Could not find %03d\n", i);

   }

else {

   fprintf(stdout, "Found %03d...Removing the right tree below it\n", i);
   bitree_rem_right(&tree, node);
   fprintf(stdout, "Tree size is %d\n", bitree_size(&tree));
   fprintf(stdout, "(Preorder traversal)\n");
   print_preorder(bitree_root(&tree));

}

i = 20;

if ((node = search_int(&tree, i)) == NULL) {

   fprintf(stdout, "Could not find %03d\n", i);

   }

else {

   fprintf(stdout, "Found %03d...Removing the right tree below it\n", i);
   bitree_rem_right(&tree, node);
   fprintf(stdout, "Tree size is %d\n", bitree_size(&tree));
   fprintf(stdout, "(Preorder traversal)\n");
   print_preorder(bitree_root(&tree));

}

i = bitree_is_leaf(bitree_root(&tree));
fprintf(stdout, "Testing bitree_is_leaf...Value=%d (0=OK)\n", i);
i = bitree_is_leaf(bitree_left((bitree_root(&tree))));
fprintf(stdout, "Testing bitree_is_leaf...Value=%d (0=OK)\n", i);
i = bitree_is_leaf(bitree_left(bitree_left((bitree_root(&tree)))));
fprintf(stdout, "Testing bitree_is_leaf...Value=%d (1=OK)\n", i);
i = bitree_is_leaf(bitree_right(bitree_left((bitree_root(&tree)))));
fprintf(stdout, "Testing bitree_is_leaf...Value=%d (1=OK)\n", i);

fprintf(stdout, "Inserting some nodes\n");

if (insert_int(&tree, 55) != 0)
   return 1;

if (insert_int(&tree, 44) != 0)
   return 1;

if (insert_int(&tree, 77) != 0)
   return 1;

if (insert_int(&tree, 11) != 0)
   return 1;

fprintf(stdout, "Tree size is %d\n", bitree_size(&tree));
fprintf(stdout, "(Preorder traversal)\n");
print_preorder(bitree_root(&tree));
fprintf(stdout, "(Inorder traversal)\n");
print_inorder(bitree_root(&tree));
fprintf(stdout, "(Postorder traversal)\n");
print_postorder(bitree_root(&tree));

/*****************************************************************************
*                                                                            *
*  Destroy the binary tree.                                                  *
*                                                                            *
*****************************************************************************/

fprintf(stdout, "Destroying the tree\n");
bitree_destroy(&tree);

return 0;

}