Пример #1
0
/* Adds a link to the front of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the front of the deque
*/
void addFrontCirListDeque(struct cirListDeque *q, TYPE val)
{
	/* DONE: you must write this */	 
	assert(q != 0);

	_addLinkAfter(q, q->Sentinel, val);
}
Пример #2
0
/* Adds a link to the back of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the back of the deque
*/
void addBackCirListDeque (struct cirListDeque *q, TYPE val) 
{
	/* FIXME: you must write this */	 
       assert(q != 0);

       _addLinkAfter(q, q->Sentinel->prev, val);
   
}
Пример #3
0
/* Adds a link to the front of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the front of the deque
*/
void addFrontCirListDeque(struct cirListDeque *q, TYPE val)
{
	//make sure q is not null
	assert(!EQ(q, 0));

	//add link to the front of the list by adding it after the sentinel
	_addLinkAfter(q, q->Sentinel, val);	 
}
Пример #4
0
/* Adds a link to the back of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the back of the deque
*/
void addBackCirListDeque (struct cirListDeque *q, TYPE val) 
{
	//make sure q is not null
	assert(!EQ(q, 0));	 

	//add link after the link to the left of the Sentinal accessed by prev
	_addLinkAfter(q, q->Sentinel->prev, val);
}
Пример #5
0
/* Adds a link to the front of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the front of the deque
*/
void addFrontCirListDeque(struct cirListDeque *q, TYPE val)
{
	/* FIXME: you must write this */
        assert(q != 0);  

       // Can Use 'Add After' when passing Sentinel
       _addLinkAfter(q, q->Sentinel, val);

}
Пример #6
0
/* Adds a link to the front of the deque
    param: q - pointer to the deque
    param: val - value for the link to be added
    pre:   q is not null
    post:  a link storing val is added to the front of the deque
*/
void addFrontCirListDeque( struct cirListDeque *q, TYPE val )
{
    /* Update information about q itself */
    q->size += 1;

    /* Create a new link with the value */
    struct DLink *newLnk = _createLink( val );

    /* Update pointers of new link */
    _addLinkAfter( q, q->Sentinel, newLnk );
}
Пример #7
0
/* Adds a link to the front of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the front of the deque
*/
void addFrontCirListDeque(struct cirListDeque *q, TYPE val)
{
	/* FIXME: you must write this */
//    struct DLink* newLink = malloc(sizeof(struct DLink));
//    newLink->value = val;
    assert(q != 0);
    _addLinkAfter(q, q->Sentinel, val);
    
//    q->Sentinel->next->prev = newLink;
//    newLink->prev = q->Sentinel;
//    newLink->next = q->Sentinel->next;
//    q->Sentinel->next = newLink;

}
Пример #8
0
/* Adds a link to the front of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the front of the deque
*/
void addFrontCirListDeque(struct cirListDeque *q, TYPE val)
{
	struct DLink * lnk = _createLink(val);
	if (isEmptyCirListDeque(q))
	{
		/* if q is currently empty, the added link becomes the only link in the deque */
	  	lnk->next = lnk;
		lnk->prev = lnk;
		q->size++;
		/* change last to the newly added link */
		q->last = lnk;
	}
	else
		_addLinkAfter(q, q->last, lnk);
}
Пример #9
0
/* Adds a link to the front of the deque

	param: 	q pointer to the deque
	param: 	val	value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the front of the deque
*/
void addFrontCirListDeque(struct cirListDeque *q, TYPE val){
     assert(q != NULL);
     _addLinkAfter(q, q->Sentinel, val);
}
Пример #10
0
/* Adds a link to the back of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the back of the deque
*/
void addBackCirListDeque (struct cirListDeque *q, TYPE val) {
	assert(q != NULL);
	_addLinkAfter(q, q->Sentinel->prev, val);
}
Пример #11
0
/* Adds a link to the front of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the front of the deque
*/
void addFrontCirListDeque(struct cirListDeque *q, TYPE val)
{
    _addLinkAfter(q, q->Sentinel, val);
}
Пример #12
0
/* Adds a link to the back of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the back of the deque
*/
void addBackCirListDeque (struct cirListDeque *q, TYPE val)
{
    _addLinkAfter(q, q->Sentinel->prev, val);
}
Пример #13
0
/* Adds a link to the front of the deque

	param: 	q		pointer to the deque
	param: 	val		value for the link to be added
	pre:	q is not null
	post:	a link storing val is added to the front of the deque
*/
void addFrontCirListDeque(struct cirListDeque *q, TYPE val)
{
    /* FIXME: you must write this */
    /* q is not null is checked in _addLinkAfter */
    _addLinkAfter(q, q->Sentinel, val);
}