Contenu connexe
Similaire à Class list data structure (20)
Class list data structure
- 4. void main(){
Humble Numbers
List<int> l;
srand((unsigned int)time(NULL));
for(int i=0; i<10; i++)
l.insert(rand()%50,rand()%10+1);
int count=0;
for(int i=1; i<=l.getSize(); i++){
int item = l.itemAt(i);
bool flag = true;
for(int cd=2; cd*cd<=item; cd++){
if(item%cd==0 && prime(cd) && cd>7){
flag = false;
break;
}
}
if(flag)
count++;
}
}
- 6. Array Implementation
Array for storage
Size
class List{
private:
int items[MAX];
int size;
public:
List();
bool append(int);
bool insertFront(int);
bool insert(int,int);
bool erase(int);
int itemAt(int);
};
- 16. General Insert
bool List::insert(int x, int pos){
if(pos<1 || pos > size+1 || size==MAX)
return false;
for(int i=size; i>pos-1; i--)
items[i] = items[i-1];
items[pos-1] = x;
size++;
return true;
}
- 35. Dynamic Array Implementation
class template<T>;
class List{
private:
int *items;
int size;
void expand();
public:
List();
bool append(int);
bool insertFront(int);
bool insert(int,int);
bool erase(int);
int itemAt(int);
};
- 37. Expand
void List::expand(){
int *copy = new int[size];
for(int i=0; i<size; i++)
copy[i] = items[i];
delete items;
items = new int[size+10];
for(int i=0; i<size; i++)
items[i] = copy[i];
delete copy;
}
- 44. Linked List Implementation
class List{
private:
node *head, *tail;
int size;
public:
List();
~List();
void append(int);
void insertFront(int);
bool insert(int,int);
int itemAt(int);
bool erase(int);
};
- 65. General Insert
bool List::insert(int x, int pos){
if(pos < 1 || pos > size+1)
return false;
if(pos==1)
insertFront(x);
else
if(pos==size+1)
append(x);
else{
node * tmp = head;
for(int i=1; i<pos-1;i++)
tmp = tmp->next;
n->next = tmp->next;
tmp->next = n;
size++;
}
return true;
}
- 74. deleteItem/erase
bool List::erase(int p){
if(p < 1 || p > size)
return false;
else{
node *del;
if(pos==1){
del = head;
head = head->next;
if(head==NULL)
tail = NULL;
}
else{
node * tmp = head;
for(int i=1; i<pos-1;i++)
tmp =tmp->next;
del = tmp->next;
tmp->next = del->next;
if(del==tail)
tail = tmp;
}
delete del; size--; return true;
}
}