#include<stdio.h>
#include<stdlib.h>
struct Node{
int data;
struct Node *pointer;
};
struct Stack{
struct Node *top;
struct Node *bottom;
};
struct Stack *Stack_Construct(void);
char Stack_Push(struct Stack *pstack,int a);
char Stack_Empty(struct Stack stack);
int Stack_Pop(struct Stack *pstack);
int main()
{
struct Stack *pstack=Stack_Construct();
Stack_Push(pstack,2);
Stack_Push(pstack,4);
Stack_Push(pstack,6);
Stack_Push(pstack,7);
Stack_Push(pstack,3);
Stack_Push(pstack,1);
while(Stack_Empty(*pstack)!=1)
printf("%6d",Stack_Pop(pstack));
return 1;
}
struct Stack *Stack_Construct(void)
{
struct Stack *pstack=(struct Stack*)malloc(sizeof(struct Stack));
struct Node *pNode=(struct Node *)malloc(sizeof(struct Node));
pstack->top=pNode;
pstack->bottom=pNode;
pNode->pointer=NULL;
return pstack;
}
char Stack_Push(struct Stack *pstack,int a)
{
struct Node *tempnode;
struct Node *pNode=(struct Node*)malloc(sizeof(struct Node));
tempnode=pstack->top;
pstack->top=pNode;
pNode->data=a;
pNode->pointer=tempnode;
}
char Stack_Empty(struct Stack stack)
{
if(stack.top==stack.bottom)
return 1;
else return 0;
}
int Stack_Pop(struct Stack *pstack)
{
struct Node *tempnode;
int temp;
if(Stack_Empty(*pstack)==1){
printf("Sorry,but the stack is empty");
return -1;
}
tempnode=pstack->top;
pstack->top=tempnode->pointer;
temp=tempnode->data;
free(tempnode);
return temp;
}
栈操作
最新推荐文章于 2022-07-27 00:10:20 发布