저장 성 2

//SeqStack.h
typedef struct stack
{
	DATA data[SIZE+1];  //  
	int top;  //  
}SeqStack;
SeqStack *SeqStackInit()
{
	SeqStack *p;
	if(p=(SeqStack *)(malloc)(sizeof(SeqStack)))  //  
	{
		p->top = 0; //  
		return p; //  
	}
	return NULL;
}
int SeqStackIsEmpty(SeqStack *s) //  
{
	return(s->top==0);
}
void SeqStackFree(SeqStack *s)  // 
{
	if(s)
	free(s);
 } 
void SeqStackClera(SeqStack *s) //  
{
	s->top = 0;
 } 
int SeqStackFull(SeqStack *s)  //  
{
	return(s->top==SIZE) ;
}
int SeqStackPush(SeqStack *s, DATA data) //  
{
	if((s->top+1)>SIZE)
	{
		printf(" !
"); return 0; } s->data[++s->top] = data; // return 1;   }  DATA SeqStackPop(SeqStack *s)  // { if(s->top==0) { printf(" !"); exit(0); } return (s->data[s->top--]); } DATA SeqStackPeek(SeqStack *s) //  { if(s->top==0) { printf(" ! "); exit(0); } return (s->data[s->top]);  }
//SeqStackTest.h
#include<stdio.h>
#include<stdlib.h>
#define SIZE 50
typedef struct
{
	char name[15];
	int age;
}DATA;
#include "SeqStack.h"
int main()
{
	SeqStack *stack;
	DATA data,data1;
	stack=SeqStackInit(); // 
	printf(" :
") ; printf("   :"); scanf("%s%d",data.name,data.age) ; SeqStackPush(stack,data); printf("   :"); scanf("%s%d",data.name,data.age); SeqStackPush(stack,data); printf("
  :
:"); getch(); data1=SeqStackPop(stack); printf(" (%s,%d)
",data1.name,data1.age); printf(" "); getch() ; data1=SeqStackPop(stack); printf(" (%s,%d)
",data1.name,data1.age); SeqStackFree(stack); // getch() ; return 0; }

좋은 웹페이지 즐겨찾기