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; }
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; }
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; }
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; }
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; }