Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // hallo.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
- //
- #include "stdafx.h"
- using namespace std;
- #include <iostream>
- int *array=NULL;
- int *temparray= NULL;
- class bisearch
- {
- public:
- int *array;
- int key;
- int arraygroesse;
- bisearch();
- ~bisearch();
- bool insert(int key);
- bool remove (int key);
- int search(int key);
- void enlarge();
- void shrink();
- int search_llb(int key);
- };
- bisearch::bisearch()
- {
- int arraygroesse;
- int *array=NULL;
- array = new int[0];
- int *temparray=NULL;
- }
- bisearch::~bisearch()
- {
- delete []array;
- }
- bool bisearch::insert(int key)
- {
- if(search(key)<0)
- {
- bisearch::enlarge();
- int i = search_llb(key);
- for (int j= arraygroesse;j>i+1;j--) array[j]=array[j-1];
- array[i+1]=key;
- arraygroesse++;
- return 1;
- }
- else return 0;
- }
- bool bisearch::remove (int key)
- {
- int i = search(key);
- if(i>-1)
- {
- for(int j = i; j<arraygroesse-1;j++) array[j]=array[j+1];
- shrink();
- return 1;
- }
- else return 0;
- }
- int bisearch::search(int key)
- {
- int links = 0;
- int rechts = arraygroesse-1;
- while ( rechts >= links)
- {
- int mid = (links + rechts)/2;
- if(key == array[mid]) return mid;
- if(key < array[mid]) rechts = mid-1;
- else links = mid+1;
- }
- return -1;
- }
- int bisearch::search_llb(int key)
- {
- int links = 0;
- int rechts = arraygroesse-1;
- while ( rechts >= links)
- {
- int mid = (links + rechts)/2;
- if(links == rechts) return mid;
- if(key < array[mid]) rechts = mid;
- else links = mid+1;
- }
- }
- void bisearch::enlarge()
- {
- arraygroesse++;
- temparray = new int [arraygroesse];
- for(int i = 0; i<arraygroesse; i++)
- {
- temparray[i]=array[i];
- }
- delete []array;
- array = new int [arraygroesse];
- for(int i = 0; i<arraygroesse; i++)
- {
- array[i]=temparray[i];
- }
- delete []temparray;
- }
- void bisearch::shrink()
- {
- arraygroesse--;
- temparray = new int [arraygroesse];
- for( int i = 0; i<arraygroesse;i++)
- {
- temparray[i]=array[i];
- }
- delete []array;
- array = new int [arraygroesse];
- for(int i = 0; i<arraygroesse; i++)
- {
- array[i]=temparray[i];
- }
- delete []temparray;
- }
- int main()
- {
- bisearch array;
- char schleife;
- int key = 5;
- int arraygroesse = 0;
- cout<<"geben Sie die zahlen ein die Sie im Array wollen"<<endl;
- cout<<"mit a brechen sie ab"<<endl;
- array.insert(key);
- for(int i = 0; i<arraygroesse;i++)
- {
- cout<<array[i];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement