真的很喜欢c的简洁优美,其实c语言用得好,写出来的程序也很清晰,涉及比c++写出来的程序结构化更好。
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
struct node * next;
int value;
}node;
typedef struct stack
{
struct node * top;
int (*pop)(struct stack *);
void (*push)(struct stack*,int value);
int (*isEmpty)(struct stack*);
}stack;
int pop(struct stack *s)
{
int value;
node *temp = s->top;
s->top = temp->next;
value = temp->value;
free (temp);
return value;
}
void push(struct stack *s ,int value)
{
node *nd = (node*)malloc(sizeof(node));
nd->value = value;
nd->next = s->top;
s->top = nd;
}
int isEmpty(struct stack *s)
{
if(s->top == NULL) return 1;
return 0;
}
void init(struct stack *s)
{
s->top = NULL;
s->pop = pop;
s->push=push;
s->isEmpty = isEmpty;
}
int main()
{
stack s;
init(&s);
int i = 0;
for (;i<10;i++)
{
s.push(&s,i);
}
while(!s.isEmpty(&s))
{
printf("value = %d\n",s.pop(&s));
}
return 0;
}