Systemnahe Programmierung in C: Datenstrukturen: Feld und Verbund |
1struct {
2 int a[20];
3 unsigned int topPtr;
4} stack= {{0}, 0};
5
6void push(int v) {
7 stack.a[stack.topPtr++] = v;
8}
9
10int top(void) {
11 return stack.a[stack.topPtr -1];
12}
13
14void pop(void) {
15 --stack.topPtr;
16}
17
18int isEmpty(void) {
19 return stack.topPtr == 0;
20}
21
|
1#include "Stack2.c"
2
3int main(void)
4{
5
6 push(...);
7
8 ... top() ...;
9
10 pop();
11
12 ... ( isEmpty() )
13
14 push(...);
15
16 pop();
17
18}
|
| struct {
int a[20]; int a[20];
unsigned int topPtr = 0; | unsigned int topPtr;
| } stack= {{0}, 0};
void push(int v) { void push(int v) {
a[topPtr++] = v; | stack.a[stack.topPtr++] = v;
} }
int top(void) { int top(void) {
return a[topPtr -1]; | return stack.a[stack.topPtr -1];
} }
void pop(void) { void pop(void) {
--topPtr; | --stack.topPtr;
} }
int isEmpty(void) { int isEmpty(void) {
return topPtr == 0; | return stack.topPtr == 0;
} }
)
|
|
Letzte Änderung: 11.01.2007 | © Prof. Dr. Uwe Schmidt |