C语言的“进栈”和“出栈”是什么意思?

Python014

C语言的“进栈”和“出栈”是什么意思?,第1张

栈使用链表来实现的.如果你不懂的链表,可以先了解一下链表.

int Push(STACK *S,int e)//进栈

{

SNode *p

p=(SNode *)malloc(sizeof(SNode))// 申请一个节点.这个节点是用来存放入栈的数据的.

if(!p)

return ERROR// 如果没有申请成功,返回错误.

p->data=e // 节点的值为e

p->next=S->top// 放到栈顶

S->top=p//并修改栈顶为P

S->length++//长度加一.

return OK//入栈成功,返回ok

}

出栈是一样的.

#include

<stdio.h>

int

stack[100]

/*100个栈空间*/

int*

sp

=

stack

/*栈指针指向栈底*/

#define

push(

i

)

{

*sp++

=

i

}

/*push一个数*/

#define

pop()

(*--sp)

/*pop一个数并返回*/

int

main()

{

int

i

for

(

i

=

0

i

<

10

++i

)/*push

0~9*/

push(

i

)

for

(

i

=

0

i

<

10

++i

)/*输出9~0*/

printf(

"%d

",

pop()

)

}