#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data;
struct Node *pNext;
}NODE, *PNODE;
typedef struct Stack {
PNODE pTop;
PNODE pBottom;
}STACK, *PSTACK;
void init(PSTACK pS) {
pS->pTop = (PNODE)malloc(sizeof(NODE));
if(NULL == pS->pTop) {
printf("动态内存分配失败!\n");
exit(-1);
}
else {
pS->pBottom = pS->pTop;
pS->pTop->pNext = NULL;
}
}
void push(PSTACK pS, int val){
PNODE pNew = (PNODE)malloc(sizeof(NODE));
pNew->data = val;
pNew->pNext = pS->pTop;
pS->pTop = pNew;
}
bool empty(PSTACK pS) {
if(pS->pTop == pS->pBottom)
return true;
else
return false;
}
bool pop(PSTACK pS, int* pVal) {
if(empty(pS)) {
return false;
}
else {
PNODE r = pS->pTop;
*pVal = r->data;
pS->pTop = r->pNext;
free(r);
r = NULL;
return true;
}
}
void traverse(PSTACK pS) {
PNODE p = pS->
栈的基本实现(入栈,出栈,清空,判断是否为空)
最新推荐文章于 2023-07-29 17:59:13 发布
#include #include typedef struct Node { int data; struct Node *pNext;}NODE, *PNODE;typedef struct Stack { PNODE pTop; PNODE pBottom;}STACK, *PSTACK;void init(PSTACK pS) { pS->pTop = (PNO
摘要由CSDN通过智能技术生成