Linear Search

#include<iostream>
using namespace std;

/* Preprocessor */
#define get_size(array) (sizeof((array))/sizeof((array[0])))

template <class t>
class linear {
	t *list;
	int length;
	public:
	linear(t *data, int size) {
		list = data;
		length = size;
	}
	
	bool search(t item) {
		bool found = false;
		for(int i = 0; i < length; i++) {
			if(list[i] == item) {
				cout << "Item found at Location: " << i+1 << endl;
				found = true;
				break;
			}
		}

		return found;
	}
};


int main() {

	/* Linear search with integer */
	int iList[] = {1,9,2,6,5,3,7,4,8,0};
	linear <int> intSearch(iList, get_size(iList));
	if(!intSearch.search(8))
		cout << "Item not found!" << endl;

	/* Linear search with float */
	float fList[] = {1.5,9.2,2.3,6.4,5.2,3.8,7.9,8.1,0.2};
	linear <float> floatSearch(fList, get_size(fList));
	if(!floatSearch.search(8))
		cout << "Item not found!" << endl;

	/* Linear search with string */
	string sList[] = {"be","to","go","fun","find","search","c++","java"};
	linear <string> strSearch(sList, get_size(sList));
	if(!strSearch.search("c++"))
		cout << "Item not found!" << endl;

	return 0;
}


/****** Output ******/

Item found at Location: 9


Item not found!


Item found at Location: 7

Recommended for you