数据结构之进栈出栈操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构之进栈出栈操作相关的知识,希望对你有一定的参考价值。

先建立一个结构体节点:

typedef struct Node{

    int member;

 struct Node *pNext;

}Node,*pNode;

创建一个栈:

typedef struct stack{

 pNode Top;

 pNode Bot;

}Stack,*pStack;

 

//初始话栈内部

void Init_stack(pStack ps)

{

ps->Top= (pNode)malloc(sizeof(Node));

if (NULL == ps->Top)

exit(-1);

ps->Bot = ps->Top; 

ps->top->pNext = NULL;

}

 

 

//进栈操作

int Instack(pStack ps ,int data)

{

pNode pNew = (pNode)malloc (sizeof(Node));

pNew->member = data;

pNew->pNext = ps->Top;

ps->Top = pNew; //可以把它想象成一个书盒,然后你一本书一本书的朝里面放书

}

 

//出栈操作

//出栈操作需要释放空间

int Exit_Stack(pStack ps)

{

int m;

pNode pDel =(pNode)malloc(sizeof(Node));

pDel->member = ps->Top ->member ;

m = pDel->member

if (ps->Top == ps->Bot)

exit(-1);   

pDel = ps->Top ;

ps->Top = ps->Top->pNext;

free(pDel);

return m;

}

 

//栈的遍历

int Tracestack(pStack ps)

{

if (ps->Top == ps->Bot)

exit(-1);

while (NULL != ps->Top->Next )

{

printf(“ps->Top->member=%d",ps->Top->member);

ps->Top = ps->Top->pNext;

}

return 0;

}//也可以用栈底不等于栈顶的方式来循环

 

以上是关于数据结构之进栈出栈操作的主要内容,如果未能解决你的问题,请参考以下文章

链栈算法

安卓 碎片 如何实现类似 活动 栈的 进栈 出栈

数据结构-栈&队列&Deque实现比较

2018 北京理工大学889 回忆

数据结构之栈以及栈的基本操作

(王道408考研数据结构)第三章栈和队列-第一节:栈基本概念顺序栈和链栈基本操作