database style:
#include<stdio.h>
#define MAX 100
int N=0;
char s[MAX];
int is_empty()
{
return N==0;
}
void push(char ch)
{
s[N++]=ch;
}
char pop()
{
if(is_empty())
return -1;
else
return s[--N];
}
void main()
{
push('t');
push('o');
push(' ');
push('u');
pop();
push('m');
push('e');
printf("%s",s);
}
运行结果:to me
link pointer style:
<pre name="code" class="cpp"><pre name="code" class="cpp">#include<stdio.h>
#include<stdlib.h>
typedef struct node_s {
char data;
struct node_s *next;
}node_t,*node_ptr_t;
node_ptr_t first;
int isEmpty()
{
return first->next==NULL;
}
node_ptr_t new_node()
{
node_ptr_t p=(node_ptr_t)malloc(sizeof(node_t));
p->next=NULL;
return p;
}
void push(char c)
{
node_ptr_t oldfirst=first;
first = new_node();
first->data=c;
first->next=oldfirst;
}
void pop()
{
char temp=first->data;
first=first->next;
printf("%c",temp);
}
void main()
{
push('t');
push('o');
push(' ');
push('u');
pop();
push('m');
push('e');
pop();
pop();
pop();
pop();
}