Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define lli long long int
- #define el endl
- #define oo cout
- #define ii cin
- #define FOR(i,a,b,c) for (int i = (a); i < (b); i=i+(c))
- using namespace std;
- class node{
- public:
- lli value;
- node *next;
- node(lli v){
- value=v;
- next=NULL;
- }};
- node *head=NULL,*tail=NULL,*tem;
- void insert_at_back(lli v){
- node *p=new node(v);
- if(head==NULL){
- head=p;
- tail=p;
- return;
- }
- tem=head;
- while(tem->next!=NULL){
- tem=tem->next;
- }
- tem->next=p;
- tail=p;
- }
- void display(){
- tem=head;
- while(tem!=NULL){
- oo<<tem->value<<" ";
- tem=tem->next;
- }
- oo<<el;
- }
- node *middle(node *f,node *l){
- node *mid=f;
- while(f!=l){
- f=f->next;
- if(f!=l){
- f=f->next;
- mid=mid->next;
- }
- }
- return mid;
- }
- void Binary_Search(){
- oo<<"Search Item:";
- lli x;
- ii>>x;
- node *first=head;
- node *last=tail;
- node *mid=middle(first,last);
- while(first!=last){
- if(mid->value == x){
- oo<<x<<" is Found !"<<el;
- return;
- }
- else if(mid->value > x){
- last=mid;
- mid=middle(first,last);
- }
- else if(mid->value < x){
- first=mid->next;
- mid=middle(first,last);
- }
- }
- oo<<x<<" Not Found!"<<el;
- }
- int main()
- {
- lli n,v;
- oo<<"Number: ";
- ii>>n;
- oo<<"Numbers: ";
- FOR(i,0,n,1){
- ii>>v;
- insert_at_back(v);
- }
- display();
- Binary_Search();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement