Created
September 6, 2017 18:56
-
-
Save lsiddiqsunny/9b19cf9aa2b4bef18d0ed4f6dfcd42fa to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> | |
using namespace std; | |
int StringToNumber ( const char *c ) | |
{ | |
int r=0; | |
int k=0; | |
for(int i=strlen(c)-1; i>=0; i--) | |
{ | |
r+=((c[i]-'0')*((int)pow(10,k))); | |
k++; | |
} | |
return r; | |
} | |
class ArrayList | |
{ | |
int *a; | |
int SIZE; | |
public: | |
ArrayList () | |
{ | |
a=new int [10]; | |
SIZE=0; | |
} | |
void Insert(int n) | |
{ | |
int *p=new int [SIZE+5]; | |
for(int i=0; i<SIZE; i++) p[i]=a[i]; | |
delete(a); | |
a=new int [SIZE*2]; | |
for(int i=0; i<SIZE; i++) a[i]=p[i]; | |
delete(p); | |
a[SIZE]=n; | |
SIZE++; | |
for(int i=0; i<SIZE; i++) cout<<a[i]<<" "; | |
cout<<endl; | |
} | |
void Insert(int n,int m) | |
{ | |
int *p=new int [SIZE+5]; | |
int i; | |
for( i=0; i<m; i++) p[i]=a[i]; | |
p[i]=n; | |
for(; i<SIZE; i++) p[i+1]=a[i]; | |
delete(a); | |
a=new int [SIZE*2]; | |
for(int i=0; i<=SIZE; i++) a[i]=p[i]; | |
delete(p); | |
SIZE++; | |
for(int i=0; i<SIZE; i++) cout<<a[i]<<" "; | |
cout<<endl; | |
} | |
int deleteitem() | |
{ | |
if(SIZE==0) | |
{ | |
cout<<"EMPTY LIST"<<endl; | |
return -1; | |
} | |
else | |
{ | |
int *p=new int [SIZE+5]; | |
int n=a[SIZE-1]; | |
for(int i=0; i<SIZE; i++) p[i]=a[i]; | |
delete(a); | |
a=new int [SIZE+5]; | |
for(int i=0; i<SIZE-1; i++) a[i]=p[i]; | |
delete(p); | |
SIZE--; | |
if(SIZE==0) | |
{ | |
cout<<"EMPTY LIST"<<endl; | |
} | |
else | |
{ | |
for(int i=0; i<SIZE; i++) cout<<a[i]<<" "; | |
cout<<endl; | |
} | |
return n; | |
} | |
} | |
int deletefirstitem(int n) | |
{ | |
if(SIZE==0) | |
{ | |
cout<<"EMPTY LIST"<<endl; | |
return -1; | |
} | |
else | |
{ | |
int *p=new int [SIZE+5]; | |
bool flag=false; | |
for(int i=0; i<SIZE; i++) | |
{ | |
if(a[i]==n) | |
{ | |
flag=true; | |
} | |
if(!flag) p[i]=a[i]; | |
else | |
{ | |
p[i]=a[i+1]; | |
} | |
} | |
if(flag==false) | |
{ | |
cout<<"Element not found"<<endl; | |
return-1; | |
} | |
// for(int i=0; i<SIZE-1; i++) cout<<p[i]<<" "; | |
delete(a); | |
a=new int [SIZE*2]; | |
for(int i=0; i<SIZE-1; i++) a[i]=p[i]; | |
delete(p); | |
SIZE--; | |
if(SIZE==0) | |
{ | |
cout<<"EMPTY LIST"<<endl; | |
} | |
else | |
{ | |
for(int i=0; i<SIZE; i++) cout<<a[i]<<" "; | |
cout<<endl; | |
} | |
return n; | |
} | |
} | |
int deletelastitem(int n) | |
{ | |
if(SIZE==0) | |
{ | |
cout<<"EMPTY LIST"<<endl; | |
return -1; | |
} | |
else | |
{ | |
int *p=new int [SIZE+5]; | |
bool flag=false; | |
int x=-1; | |
for(int i=0; i<SIZE; i++) | |
{ | |
if(a[i]==n) | |
{ | |
x=i; | |
} | |
p[i]=a[i]; | |
} | |
if(x==-1) | |
{ | |
cout<<"Element not found"<<endl; | |
return-1; | |
} | |
// cout<<x<<endl; | |
for(int i=x; i<SIZE-1; i++) p[i]=p[i+1]; | |
delete(a); | |
a=new int [SIZE+5]; | |
for(int i=0; i<SIZE-1; i++) a[i]=p[i]; | |
delete(p); | |
SIZE--; | |
if(SIZE==0) | |
{ | |
cout<<"EMPTY LIST"<<endl; | |
} | |
else | |
{ | |
for(int i=0; i<SIZE; i++) cout<<a[i]<<" "; | |
cout<<endl; | |
} | |
return n; | |
} | |
} | |
void clearList() | |
{ | |
delete(a); | |
SIZE=0; | |
a=new int [10]; | |
cout<<"CLEAR COMPLETED"<<endl; | |
} | |
void searchItem(int n) | |
{ | |
for(int i=0; i<SIZE; i++) | |
{ | |
if(a[i]==n) | |
{ | |
cout<<"Found at position "<<i<<endl; | |
return; | |
} | |
} | |
cout<<"Element not found"<<endl; | |
} | |
}; | |
int main() | |
{ | |
ArrayList arrlist; | |
while(1) | |
{ | |
char s[100]; | |
gets(s); | |
if(s[0]=='T') break; | |
if(s[0]=='D') | |
{ | |
int co=0; | |
for(int i=0; i<strlen(s); i++) | |
{ | |
if(s[i]==' ') co++; | |
} | |
if(co==0) | |
{ | |
arrlist.deleteitem(); | |
} | |
else if(s[2]=='L') | |
{ | |
char c[50]; | |
int x; | |
for(int i=0; i<strlen(s); i++) | |
{ | |
if(s[i]==' ') x=i; | |
} | |
bool flag=false; | |
if(s[x+1]=='-') | |
{ | |
flag=true; | |
x++; | |
} | |
int d=strlen(s)-x; | |
for(int i=x+1; i<strlen(s); i++) c[i-x-1]=s[i]; | |
c[d]='\0'; | |
int n=StringToNumber(c); | |
if(flag) n=-n; | |
arrlist.deletelastitem(n); | |
} | |
else | |
{ | |
char c[50]; | |
int x; | |
for(int i=0; i<strlen(s); i++) | |
{ | |
if(s[i]==' ') x=i; | |
} | |
bool flag=false; | |
if(s[x+1]=='-') | |
{ | |
flag=true; | |
x++; | |
} | |
int d=strlen(s)-x; | |
for(int i=x+1; i<strlen(s); i++) c[i-x-1]=s[i]; | |
c[d]='\0'; | |
int n=StringToNumber(c); | |
if(flag) n=-n; | |
arrlist.deletefirstitem(n); | |
} | |
} | |
if(s[0]=='I') | |
{ | |
int co=0; | |
for(int i=0; i<strlen(s); i++) | |
{ | |
if(s[i]==' ') co++; | |
} | |
if(co==2) | |
{ | |
int n,m; | |
char c[50]; | |
int y=-1; | |
for(int i=0; i<strlen(s); i++) | |
{ | |
if(s[i]==' ') | |
{ | |
y=i; | |
} | |
} | |
int x=2; | |
bool flag=false; | |
if(s[2]=='-') | |
{ | |
flag=true; | |
x++; | |
} | |
for(int i=x; i<y; i++) c[i-x]=s[i]; | |
c[y-x]='\0'; | |
n=StringToNumber(c); | |
if(flag) n=-n; | |
char e[50]; | |
int d=strlen(s)-y; | |
for(int i=y+1; i<strlen(s); i++) e[i-y-1]=s[i]; | |
e[d]='\0'; | |
m=StringToNumber(e); | |
arrlist.Insert(n,m); | |
} | |
else | |
{ | |
char c[50]; | |
bool flag=false; | |
int x=2; | |
if(s[2]=='-') | |
{ | |
flag=true; | |
x++; | |
} | |
int d=strlen(s)-x; | |
for(int i=x; i<strlen(s); i++) c[i-x]=s[i]; | |
c[d]='\0'; | |
int n=StringToNumber(c); | |
if(flag) n=-n; | |
arrlist.Insert(n); | |
} | |
} | |
if(s[0]=='C') | |
{ | |
arrlist.clearList(); | |
} | |
if(s[0]=='S') | |
{ | |
char c[50]; | |
bool flag=false; | |
int x=2; | |
if(s[2]=='-') | |
{ | |
flag=true; | |
x++; | |
} | |
int d=strlen(s)-x; | |
for(int i=x; i<strlen(s); i++) c[i-x]=s[i]; | |
c[d]='\0'; | |
int n=StringToNumber(c); | |
if(flag) n=-n; | |
arrlist.searchItem(n); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment