Esempio n. 1
0
int
main(int argc, char *argv[])
{

#ifndef _LIST_
/*双链表实现*/
	dlist dl;
	dl = init_dlist(dl);
	rand_dlist(dl, SIZE, MAX_NUM);
	printf("this is doubly list.\n");
	print_dlist(dl);
	exchange_dlnode(dl->next->next, dl);
	print_dlist(dl);
#else
/*单链表实现*/
	list l;
	l = init_list(l);
	rand_list(l, SIZE, MAX_NUM);
	printf("this is single list.\n");
	print_list(l);
	exchange_lnode(l->next->next, l);
	print_list(l);
#endif
	return 0;

}
Esempio n. 2
0
int main(int argc, char *argv[]) {
  int size = 0;
  int i = 0;

  for (i=0, size=10*1000; i<20; i++, size += 10*1000)
  {
    int *list = (int*)malloc(sizeof(int)*size);
    struct timeval tm;

    rand_list(list, size);

    gettimeofday(&tm, NULL);
    long long time_start = tm.tv_sec*1000LL*1000LL + tm.tv_usec;
    
    quick_sort(list, size);

    gettimeofday(&tm, NULL);
    long long single_time = (tm.tv_sec*1000LL*1000LL + tm.tv_usec) - time_start;

#if CHECK
    int i = 0;
    for (i=0; i<size; i++)
      if (list[i] != i)
        printf("error\n");
#endif

    gettimeofday(&tm, NULL);
    time_start = tm.tv_sec*1000LL*1000LL + tm.tv_usec;
    
    parallel_quick_sort(list, size);

    gettimeofday(&tm, NULL);
    long long parallel_time = (tm.tv_sec*1000LL*1000LL + tm.tv_usec) - time_start;

#if CHECK
    for (i=0; i<size; i++)
      if (list[i] != i)
        printf("error\n");
#endif

    printf("size=%d\tsingle=%lld\tparallel=%lld\trate=%0.4f\n", 
        size, single_time, parallel_time, ((float)single_time / (float)parallel_time) - 1);
  }

	return 0;
}
Esempio n. 3
0
int
main(int argc, char *argv[])
{
	list l = NULL;
	l = init_list(l);
	l = rand_list(l, 30, 10);
	print_list(l);

	find_node(3, l);
	print_list(l);

	find_node(4, l);
	print_list(l);

	find_node(5, l);
	print_list(l);

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

	list p, l;
	p = init_list(p);
	l = init_list(l);

	rand_list(l, SIZE / 2, MAX_NUM);
	fill_list(p, SIZE);

	printf("\nlist l: ");
	print_list(l);
	printf("list p: ");
	print_list(p);

	printf("\nthe selected numbers:\n");
	print_lots(l, p);
	return 0;
}
Esempio n. 5
0
int main(void)
{
    printf("---- a ----\n");
    struct SqList a;
    init_list(&a, 10, 1);
    print_list(&a);
    rand_list(&a, 10);
    print_list(&a);
    printf("a:%p\n", a);
    printf("&a:%p\n", &a);
    printf("a.data:%p\n", a.data);

    printf("---- b ----\n");
    struct SqList b = {a.data, a.length};
    print_list(&b);
    printf("b.length:%d\n", b.length);
    printf("&b:%p\n", &b);
    printf("b:%p\n", b);
    printf("b.data:%p\n", b.data);

    printf("---- c ----\n");
    struct SqList c = b;
    print_list(&c);
    printf("c.length:%d\n", c.length);
    printf("&c.length:%p\n", &c.length);
    printf("&c:%p\n", &c);
    printf("c:%p\n", c);
    printf("c.data:%p\n", c.data);
    printf("&c.data:%p\n", &c.data);

    printf("---- *d ----\n");
    struct SqList *d = &c;
    print_list(d);
    printf("d->length:%d\n", d->length);
    printf("&d->length:%p\n", &d->length);
    printf("d:%p\n", d);
    printf("&d->data:%p\n", &d->data);
    printf("&(d->data):%p\n", &(d->data));

    printf("---- e ----\n");
    struct SqList e;
    e.data = a.data;
    e.length = a.length;
    printf("&a:%p\n", &a);
    printf("&e:%p\n", &e);
    printf("a.data:%p\n", a.data);
    printf("e.data:%p\n", e.data);
    printf("&a.data:%p\n", &a.data);
    printf("&e.data:%p\n", &e.data);
    printf("&a.length:%p\n", &a.length);
    printf("&e.length:%p\n", &e.length);
    print_list(&e);

    printf("---- f ----\n");
    struct SqList *f;
    printf("f:%p\n", f);
    f->length = 10;
    printf("f:%p\n", f);
    printf("f->length:%d\n", f->length);
    printf("------");
    //printf("f->length:%d\n", f->length);
    //f->data = a.data;
    (*f).data = a.data;
    printf("1111");
    f->length = a.length;
    printf("&a:%p\n", &a);
    printf("f:%p\n", f);
    printf("a.data:%p\n", a.data);
    printf("f->data:%p\n", f->data);
    printf("&a.data:%p\n", &a.data);
    printf("&f->data:%p\n", &f->data);
    printf("&a.length:%p\n", &a.length);
    printf("&f->length:%p\n", &f->length);
    print_list(f);

    return 0;
}