c++实现链栈

// test.cpp : 定义控制台应用程序的入口点。IDE是vs2013
//
#include "stdafx.h"
#include<iostream>
using namespace std;
typedef struct node
{
	int data;
	struct node *next;
}nodes, *linkstack;	//nodes表示结点,linkstack表示栈指针
void InitalStack(linkstack &top)		//1.初始化链栈InitalStack(栈名)
{
	top = NULL;
}
void Push(linkstack &top, int x)		//2.进栈Push(元素值)
{
	nodes *p;//创建新结点的指针
	p = new nodes;//指针初始化,指向一个新结点
	p->data = x;	//赋值
	p->next = top;
	top = p;//新结点成为栈顶结点
}
int Pop(linkstack &top)			//3.出栈运算
{
	nodes *p;			//创建新结点的指针
	p = new nodes;//指针初始化,指向一个新结点
	int x;					//用x返回被出栈的元素值
	if (top == NULL)
	{
		return 0;
	}
	else//当栈不为空
	{
		p = top;	//取栈顶元素
		x = p->data;
		top = p->next;//栈顶下移
		delete p;//删除栈顶元素
		return x;//返回其值
	}
}
int GetTop(linkstack &top)				//4.取栈顶元素
{
	int x;
	if (top == NULL)
	{
		return 0;
	}
	else//当栈不为空
	{
		x = top->data;//取栈顶结点的值
		return x;//返回值
	}
}
int IsEmpty(linkstack &top)				//5.判断栈是否为空
{
	if (top == NULL)//空栈
	{
		return 1;
	}
	else//非空栈
	{
		return 0;
	}
}
int _tmain(int argc, _TCHAR* argv[])
{
	linkstack t;//创建一个指向结点的栈指针
	InitalStack(t);//初始化栈
	Push(t, 9);				//进栈
	Push(t, 8);
	cout << Pop(t)<<endl;				//出栈
	cout << GetTop(t);//取栈顶元素
	system("pause");
	return 0;
<span style="font-family: Arial, Helvetica, sans-serif;">}</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值