您的位置:首页 > 其它

链栈的基本操作

2016-05-12 21:40 302 查看
链栈的基本操作实现代码如下:
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  空间 元素 return