stack的小程序

#include<stdio.h>
#include<stdlib.h>
#define STACK_SIZE  100
#define STACK_ADD  50

typedef struct stack{
 int *base;
 int *top;
 int length;
}stack;


void init(stack *s)
{
 s->base=(int *)malloc(sizeof(stack)*STACK_SIZE);
 s->top=s->base;
 s->length=STACK_SIZE;
}

void push(stack *s,int e)
{
 if(s->top-s->base>=s->length){
  s->base=(int *)realloc(s->base,sizeof(int)*(s->length+STACK_ADD));
  s->top=s->base+s->length;
  s->length+=STACK_ADD;
 }
 *(s->top)++=e;
}

void pop(stack *s)
{
 int n;
 if(s->top==s->base) ;
 n=*(--s->top);
 printf("%d/t",n);
}

void main()
{
 stack *s=(stack *)malloc(sizeof(stack));
 init(s);
 push(s,12);
 push(s,15);
 push(s,18);
 pop(s);
 pop(s);
 push(s,21);
 pop(s);
 pop(s);
 printf("/n");
 getchar();
}

發佈了15 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章