|
|

| List | Stack | |||
|---|---|---|---|---|
| create | O(1) | O(1) | ||
| delete | O(1) | O(1) | ||
| add | O(n) | O(1) | ||
| remove | O(n) | O(1) | ||
| traversal | O(1) | na | ||
| navigation | O(1) | na | ||
| dynamic | No | No |
| List | Stack | Stack | ||||
|---|---|---|---|---|---|---|
| (Array) | (List) | |||||
| create | O(1) | O(1) | O(1) | |||
| delete | O(1) | O(1) | O(1) | |||
| add | O(n) | O(1) | O(1) | |||
| remove | O(n) | O(1) | O(1) | |||
| traversal | O(1) | na | na | |||
| navigation | O(1) | na | na | |||
| dynamic | No | No | Yes |
| List | Stack | Stack | Stack | |||||
|---|---|---|---|---|---|---|---|---|
| (Array) | (List) | (DArray) | ||||||
| create | O(1) | O(1) | O(1) | O(1) | ||||
| delete | O(1) | O(1) | O(1) | O(1) | ||||
| add | O(n) | O(1) | O(1) | O(1)* | ||||
| remove | O(n) | O(1) | O(1) | O(1)* | ||||
| traversal | O(1) | na | na | na | ||||
| navigation | O(1) | na | na | na | ||||
| dynamic | No | No | Yes | Yes |
* Amortized.
int f() int i, j double x // whatever
|
|
|
|
|
a()
a() calls b()
b() calls c()
c() returns
b() returns
a() returns
void reverse(T a[], int n, int i)
if i < n
T c = a[i]
reverse(a, n, i + 1)
a[n - (i + 1)] = c
