今天是国庆节的第一天,没有出去旅游,在学校学习,马上就要找工作了,希望能够找到一个好的工作。堆栈是今天上午写的一个程序。
堆栈是一种先进后出的数据存放的格式。具体的操作见程序:
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct St
{
int data;
struct St *pNext;
}NODE,*PNODE;
typedef struct stack
{
PNODE pTop;
PNODE pBottom;
}Stack;
void creat_Stack(Stack* s);//创建堆栈
void push_Stack(Stack* s);//压栈
void traverse_Stack(Stack* s);//遍历输出
void push_Pop(Stack* s);//出栈
int main()
{
Stack s;
creat_Stack( &s);
push_Stack(&s);
push_Stack(&s);
push_Stack(&s);
traverse_Stack(&s);
push_Pop( &s);
traverse_Stack(&s);
return 0;
}
void creat_Stack(Stack* s)
{
PNODE pNew = (PNODE)malloc(sizeof(NODE));
s->pBottom = s->pTop = pNew;
pNew->pNext = NULL;
}
void push_Stack(Stack* s)
{
int val= 0;
PNODE pNew = (PNODE)malloc(sizeof(NODE));
pNew->pNext = s->pTop;
s->pTop = pNew;
printf("请输入入栈的值\n");
scanf("%d",&val);
pNew->data = val;
}
void traverse_Stack(Stack* s)
{
if(s->pTop == s->pBottom)
printf("空栈\n");
PNODE p = s->pTop;
while(p != s->pBottom)
{
printf("%d",p->data);
p = p->pNext;
}
printf("\n");
}
void push_Pop(Stack* s)
{
while(s->pTop!= s->pBottom)
{
PNODE p = s->pTop;
s->pTop = p->pNext;
free(p);
}
}
程序执行的结果是:
渐渐的长大,是不是越来越孤单?