示例#1
0
int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    std::vector<int> this_vec = {0,1,2,3,4,5,6};
    print_vec(this_vec);

    reverse_vector(this_vec);
    print_vec(this_vec);
    std::vector<int> big_vector = fill_vec(47);
    print_vec(big_vector);
    reverse_vector(big_vector);
    print_vec(big_vector);
    std::list<int> small_list = fill_list(15, 47);
    print_list(small_list);
    reverse_list(small_list);
    print_list(small_list);
    std::list<int> big_list = fill_list(100, 710);
    print_list(big_list);
    reverse_list(big_list);
    print_list(big_list);
    
    Node* a = new Node;
    a->value = 6;
    a->ptr = new Node;
    a->ptr->value = 7;
    a->ptr->ptr = new Node;
    a->ptr->ptr->value = 8;
    a->ptr->ptr->ptr = new Node;
    a->ptr->ptr->ptr->value = 9;
    a->ptr->ptr->ptr->ptr = NULL;
    // print out this list
    print_linked_list("a",a);
    
    // create an STL list with 4 elements
    std::list<int> b;
    b.push_back(10);
    b.push_back(11);
    b.push_back(12);
    b.push_back(13);
    
    // use the STL list as input to a creator function that creates
    // linked lists with the same data
    Node* c = make_linked_list_from_STL_list(b);
    // print that data
    print_linked_list("c",c);
    
    //
    // WRITE A FEW MORE TEST CASES OF make_linked_list_from_STL_list
    //
    
    
    // reverse a linked list of nodes
    Node* d = reverse_nodes_in_linked_list(c);
    // print this data
    print_linked_list("d",d);
    
    //
    // WRITE A FEW MORE TEST CASES OF reverse_nodes_in_linked_list
    return 0;
}
/*
 * computes a vector that is [cut_rows,cut_cols,uncut_rows,uncut_cols) (flag=0) or [cut_cols,cut_rows,uncut_cols,uncut_rows] (flag=1)
 */
long* pa_unsorted_concat(struct sparsematrix* A, int flag){
	int i;
	int m = A->m;
	int n = A->n;
	int cut_length, uncut_length;
	long *cut_part, *uncut_part;

	cut_and_uncut(A,&cut_part,&cut_length,&uncut_part,&uncut_length);

	if(flag){
		reverse_vector(&cut_part,cut_length);
		reverse_vector(&uncut_part,uncut_length);
	}

	long* vec = vecallocl(m+n);
	int index_vec = 0;
	for(i=0;i<uncut_length;i++) vec[index_vec++] = uncut_part[i];
	for(i=0;i<cut_length;i++) vec[index_vec++] = cut_part[i];

	vecfreel(cut_part);
	vecfreel(uncut_part);

	return vec;
}