Linked List Worksheet #1

Use this node definition on the questions that follow.

```	struct node
{
int info;
node * next;
node (int D, node *N)
: info (D),
next (N)
{ } 		// all fields initialized in initializer list
} ;			// notice semi-colon
```
1. Draw a diagram and display the output:
```	node *r = new node(9, NULL);
node *s = new node(7, r);
node *p = new node(3, s);
cout << p->info + s->info + r->info << endl;
```
2. Complete this swap function:
```	void swap (node*a, node*b)
// pre:	 a and b are initialized and not NULL
// post: the data stored in the info fields of a and b have been exchanged
{
```
3. Consider function `CopyFront` outlined below:
```	void CopyFront (node *L)
// pre:	 L is not NULL
// post: the first node in list L has been copied and inserted after the first node
{
< more code >
}
```
For example:

Which of the following code segments could be used to replace `< more code> ` so that `CopyFront` works as intended?
```	A.  L = new node (L->info, NULL);
B.  L = new node (L->info, L);
C.  L = new node (L->info, L->next);
D.  L->next = new node (L->info, L);
E.  L->next = new node (L->info, L->next);
```

Continue to:  Unit 6  / Prev  / Next