链栈的基本操作
链栈的基本操作实现代码如下:
#include<iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
//链栈的结构
typedef struct node
{
int data;
struct node *next;
}LinkStackNode;
typedef LinkStackNode *LinkStack;
//链栈进栈
int Push(LinkStack top, int x)//将数据元素x压入栈top中
{
LinkStackNode *temp;
temp = (LinkStackNode *)malloc(sizeof(LinkStackNode));
if (temp==NULL)//申请空间失败
{
return FALSE;
}
temp->data= x;
temp->next = top->next;
top->next = temp;//修改当前栈顶指针
return TRUE;
}
//链栈出栈
int Pop(LinkStack top, int *x)//将栈top的栈顶元素弹出,放到x所指的存储空间中
{
LinkStackNode *temp;
temp = top->next;
if (temp == NULL)//栈为空
{
return FALSE;
}
top->next = temp->next;
*x=temp->data ;
free(temp);//释放存储空间
return TRUE;
}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。