#include "search_types.h"

void initialize_list(RecordList List)
{
	int a;
	
	for (a=0; a<MAX_ITEMS; a++) {
		List[a].id = -1;
		List[a].data = -1;
	}
	
	return;
}

/*********************************************************/

int add_record(RecordList List, Record entry, int counter)
{
	int a = 1;

	if (List[counter].id != -1) {
		a = 0;
		return(a);
	} else {
		List[counter].id = entry.id;
		List[counter].data = entry.data;
		return(a);
	}
}

/*********************************************************/

int search_binary(RecordList List, int target, int num_items)
{
	int L = 0, R = num_items;
	int Midpoint;
	int found = 1, a = 0;
	extern int binary_com;
	
	while (L <= R) {
		binary_com++;
		
		Midpoint = (L+R) / 2;

		if (List[Midpoint].id == target)
			return(found);
		else if (List[Midpoint].id < target)
			L = Midpoint + 1;
		else
			R = Midpoint - 1;
	}
		
	return(a);
}

/*********************************************************/

int search_sequential(RecordList List, int target, int num_items)
{
	int a, b = 0, found = 1;
	extern int sequential_com;
	
	for (a=0; a<num_items; a++) {
		sequential_com++;
		if (List[a].id == target)
			return(found);
	}
	
	return(b);
}


