1: // Filename: LINKINT.CPP
2: // Purpose: Illustrate a sequence of linked nodes.
4: #include <iostream>
5: #include <iomanip>
6: using namespace std;
8: typedef int DataType;
9: struct Node
10: {
11: DataType data;
12: Node* link;
13: };
14: typedef Node* NodePointer;
17: int main()
18: {
19: cout << "\nThis program builds a sequence of "
20: << "linked nodes of integers of size 3 with "
21: << "\nvalues read from the keyboard and "
22: << "then prints out values."
23: << "\nEnter three values on the following "
24: << "line and then press ENTER: \n";
26: NodePointer head, current, next;
28: head = new Node; // Get a first node
29: current = head; // Make current point at the first node
30: cin >> current->data; // Read a value into the first node
32: next = new Node; // Get a new node (the second one)
33: current->link = next; // Attach the current (first) node to the second
34: current = next; // Make current point at the second node
35: cin >> current->data; // Read a value into the second node
37: next = new Node; // Get a new node (the third one)
38: current->link = next; // Attach the current (second) node to the third
39: current = next; // Make current point at the third node
40: cin >> current->data; // Read a value into the third node
42: current->link = NULL; // Make sure sequence is terminated properly
44: // Output the data value in each node
45: cout << endl;
46: current = head; // Make current point at head of sequence
47: while (current != NULL) // while the end of sequence not reached
48: {
49: cout << setw(5) << current->data; // Output value pointed at by current
50: current = current->link; // Move current pointer to next node
51: }
52: cout << endl << endl;
54: return 0;
55: }