Solved-HOMEWORK 6 -Solution

$30.00 $19.00

Be sure to include your name at the beginning of the le! Assignment 6 includes only a typed portion which should consist of a single le (hw06written) in a .pdf format. Be sure to include your name at the beginning of each le! You must hand in the le via NYU Classes. Written Part: Draw…

You’ll get a: . zip file solution

 

 
Categorys:
Tags:

Description

5/5 – (2 votes)

Be sure to include your name at the beginning of the le! Assignment 6 includes only a typed portion which should consist of a single le (hw06written) in a .pdf format. Be sure to include your name at the beginning of each le! You must hand in the le via NYU Classes.

Written Part:

  1. Draw the conceptual representation for our implementation of a link list (include the header) containing a single item A.

  1. For each of the following, determine if the code compiles.

vector<int> A = {1,2,3,4,5}; vector<int>::iterator vItr1; vector<int>::iterator vItr2; list<int> C = {1, 2,3,4,5}; list<int>::iterator lItr1; list<int>::iterator lItr2;

(a)

vItr1 = A.begin( );

vItr2 = A.end( );

cout << vItr1 + (vItr1 + vItr2)/2;

    1. lItr1 = C.begin( );

lItr2 = find(C.begin(), C.end(), 3); if ( lItr1 < lItr2 )

cout << ” 2 is not the first item “;

  1. For each of the following, determine if the iterator is valid.

vector<int> A = {1,2,3,4,5}; vector<int> B; vector<int>::iterator vItr; list<int> C = {1, 2,3,4,5}; list<int> D; list<int>::iterator lItr;

1

  1. B=A;

vItr = B.begin(); B.erase(B.begin()+1);

  1. B=A;

vItr = B.begin()+2; B.erase(B.begin()+1);

  1. D=C;

lItr = C.begin(); C.erase(++C.begin());

  1. D=C;

lItr = ++D.begin();

++lItr

D.erase(++D.begin());

  1. Which of the following code snippets are valid? If the code snippet is invalid, state why.

    1. list<int> l; list<int>::iterator lIter; l.push_back(200);

lIter = l.begin();

for (int i = 1; i < 100; ++i) l.push_front(i);

for (int i = 1; i < 100; ++i) l.push_back(-i);

cout << *lIter << endl;

    1. list<int> l; list<int>::iterator lIter1; list<int>::iterator lIter2; list<int>::iterator mid; for (int i = 0; i < 100; ++i)

l.push_back(i); lIter1 = l.begin(); lIter2 = l.end();

mid = lIter1 + (lIter2 – lIter1)/2; cout << *mid << endl;

    1. vector<int> v; vector<int>::iterator vIter1; vector<int>::iterator vIter2; vector<int>::iterator mid; for (int i = 0; i < 100; ++i)

v.push_back(i); vIter1 = v.begin(); vIter2 = v.end();

mid = vIter1 + (vIter2 – vIter1)/2; cout << *mid << endl;

2

  1. For the List class, what if the following code for the method remove was used. Would it work correctly? Explain.

void remove( const Object & x )

{

Node * prev = header->next; while ( prev != nullptr )

{

if ( prev->next->data == x )

erase_after( iterator(prev) );

else

prev = prev->next;

}

}

3