#include <iostream>
using namespace std;
typedef int ElemType;
#define MaxSize 100
typedef struct linknode
{
ElemType data; //数据域
struct linknode *next; //指针域
} LinkStNode;
void SqstackInit(LinkStNode*&s)
{
s= (LinkStNode*)malloc(sizeof(LinkStNode));
s->next = NULL;
}
void pushSqstack(LinkStNode*&s, ElemType e)
{
LinkStNode * temp;
temp = (LinkStNode*)malloc(sizeof(LinkStNode));
temp->data = e;
temp->next = s->next;
s->next = temp;
}
bool pushOutStstack(LinkStNode*&s, ElemType &e)
{
if (s->next == NULL)
return false;
LinkStNode * temp;
temp = s->next;
s->next = temp->next;
e = temp->data;
free(temp);
return true;
}
void DestroyStstack(LinkStNode*&s)
{
LinkStNode *p = s->next, *q = s;
while (p == NULL)
{
free(q);
q = p;
p = p->next;
}
free(q);//此时q指向尾结点
}
int main()
{
LinkStNode *s;
int i = 4,e;
SqstackInit(s);
pushSqstack(s,i);
pushOutStstack(s, e);
DestroyStstack(s);
}
链栈的初始化,进栈,出栈,销毁栈
最新推荐文章于 2024-03-20 22:50:38 发布