source:
CIVL/examples/languageFeatures/linkedList.cvl@
a8ca3d3
| Last change on this file since a8ca3d3 was 78fdaf0, checked in by , 12 years ago | |
|---|---|
|
|
| File size: 722 bytes | |
| Rev | Line | |
|---|---|---|
| [36b5ada] | 1 | /* Commandline execution: |
| 2 | * civl verify linkedList.cvl | |
| 3 | * */ | |
| [97cfc53] | 4 | #include<civlc.h> |
| 5 | ||
| 6 | $input int N; | |
| 7 | $assume N > 0 && N <= 5; | |
| 8 | ||
| 9 | typedef struct Node { | |
| 10 | double value; | |
| 11 | struct Node* next; | |
| 12 | } Node; | |
| 13 | ||
| 14 | void main() { | |
| [78fdaf0] | 15 | $scope s = $here; |
| [be48e64] | 16 | Node* head; |
| [78fdaf0] | 17 | Node* current = (Node *) $malloc(s, sizeof(Node)); |
| [97cfc53] | 18 | Node final; |
| 19 | ||
| [be48e64] | 20 | head = current; |
| 21 | head->value = 0.0; | |
| [97cfc53] | 22 | for (int i = 0; i < N-1; i++) { |
| [78fdaf0] | 23 | Node* newNode = (Node *) $malloc(s, sizeof(Node)); |
| [97cfc53] | 24 | |
| 25 | newNode->value = (i+1)*2.71828; | |
| 26 | current->next = newNode; | |
| 27 | current = newNode; | |
| 28 | } | |
| 29 | current->next = NULL; | |
| [be48e64] | 30 | final = *head; |
| [97cfc53] | 31 | while (final.next != NULL) { |
| 32 | final = *(final.next); | |
| 33 | } | |
| [09b9231b] | 34 | $assert(final.value == (N-1)*2.71828); |
| 35 | $assert(final.value == current->value); | |
| [97cfc53] | 36 | } |
Note:
See TracBrowser
for help on using the repository browser.
