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