Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define list_size 10
- using namespace std;
- struct list {
- int length = 0;
- int items[list_size];
- };
- void insert(struct list *ls, int value) {
- int i;
- for(i = ls->length-1; i >= 0 && ls->items[i] > value; i--) {
- ls->items[i+1] = ls->items[i];
- }
- ls->items[i+1] = value;
- ls->length++;
- }
- void print_all(struct list *ls) {
- cout << "Printing all elements: ";
- for(int i = 0; i < ls->length; i++) {
- cout << ls->items[i] << " ";
- }
- cout << "\n";
- }
- int get(struct list *ls, int index) {
- return ls->items[index];
- }
- int search(struct list *ls, int value) {
- int low = 0;
- int high = ls->length-1;
- while(low <= high) {
- int mid = (low+high)/2;
- cout << "low = " << low << " high = " << high << " mid = " << mid << "\n";
- if(ls->items[mid] == value) {
- // Found the item
- cout << "Found element at " << mid << "\n";
- return mid;
- }
- else if(ls->items[mid] < value) {
- low = mid+1;
- cout << "low changed to " << low << "\n";
- }
- else {
- high = mid-1;
- cout << "high changed to " << high << "\n";
- }
- }
- return -1;
- }
- void delete_item(struct list *ls, int index) {
- for(int i = index+1; i < ls->length; i++) {
- ls->items[i-1] = ls->items[i];
- }
- ls->length--;
- }
- int main()
- {
- list myList;
- insert(&myList, 2);
- insert(&myList, 5);
- insert(&myList, 8);
- insert(&myList, 12);
- insert(&myList, 16);
- insert(&myList, 23);
- insert(&myList, 38);
- insert(&myList, 56);
- insert(&myList, 72);
- insert(&myList, 91);
- print_all(&myList);
- int index = search(&myList, 23);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment