数据结构之链栈 C++实现
第一次写博客 如有问题 望海涵
用到了引用所以算是C++实现的吧
刚入门的朋友不懂得可以问我
如果是大佬希望多指导
#include <cstdio>
#include <cstdlib>
typedef struct LinkStack
{
int data;
struct LinkStack* Next;
}LinkStack,*LiStack;
//创栈 创
bool InitLinkStack(LiStack &LS)
{
if (LS == NULL)
{
return false;
}
LS = NULL;
return true;
}
//入栈 增
bool PushLinkStack(LiStack& LS,int e)
{
LinkStack* NewNode;
NewNode = (LinkStack*)malloc(sizeof(LinkStack));
if (NewNode == NULL)
{
return false;
}
NewNode->data = e;
if (LS == NULL)
{
NewNode->Next = NULL;
LS = NewNode;
return true;
}
NewNode->Next = LS;
LS = NewNode;
return true;
}
//出栈 删
bool PopLinkStack(LiStack& LS,int &e)//e是要带回删除的信息
{
if (LS == NULL)
{
return false;
}
e = LS->data;
LinkStack* TempStack;
TempStack = LS;
LS = LS->Next;
free(TempStack);
return true;
}
//改栈 改
bool ChangeLinkStack(LiStack& LS,int e)
{
if (LS == NULL)
{
return false;
}
LS->data = e;
return true;
}
//取栈 查
bool Pick_upStack(LiStack& LS,int& e)
{
if (LS == NULL)
{
return false;
}
e = LS->data;
return true;
}
//判断是否空
bool StackEmpty(LiStack LS)
{
if (LS == NULL)
{
return false;
}
return true;
}
//销栈 销
bool DestroyStack(LiStack& LS)
{
if (LS == NULL)
{
return false;
}
LinkStack* TempStack;
TempStack = LS;
while (TempStack != NULL)
{
LinkStack* temp = TempStack;
TempStack = TempStack->Next;
free(temp);
}
return true;
}
int main()
{
LiStack S;
//int e;
InitLinkStack(S);
PushLinkStack(S, 333);
DestroyStack(S);
InitLinkStack(S);
system("pause>0");
return 0;
}