码迷,mamicode.com
首页 > 其他好文 > 详细

大话数据结构之栈的链式存储结构

时间:2015-03-10 22:43:35      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

#include<iostream>

//#include<time.h>
//#include <stdlib.h>

using namespace std;

#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0

typedef int status;//返回的状态值
typedef int elemtype;//节点里数据的类型

//每一个节点的数据结构
typedef struct stacknode
{
	elemtype data;//节点的数据
	stacknodeptr next;//指向下一个节点的指针.
}stacknode,*stacknodeptr;

//top的数据结构
typedef struct linlstack
{
	stacknodeptr top;//指向栈顶元素的指针.
	int count;//元素的个数
}linlstack;

//进栈操作
//将值e压入栈L中
status push_stack(linlstack *L,elemtype e)
{
	stacknodeptr p;//定义一个指向节点的指针
	p=(stacknodeptr)malloc(sizeof(stacknode));//开辟动态内存
	p->next=L->top;//将该节点的指针指向原来的栈顶元素
	p->data=e;//将e的值赋给现在的栈顶元素
	L->top=p;//将top指针指向现在的栈顶元素
	L->count++;//计数的值加一
	return OK;
}

//出栈操作
//将栈L中的栈顶元素弹出到e中
status pop_stack(linlstack *L,elemtype &e)
{
	if(L->count==0)//若栈为空栈则返回错误指示
		return ERROR;
	e=L->top->data;//将栈顶元素的数据给e
	stacknodeptr p;//定义一个节点指针
	p=L->top;//将指针指向原来的栈顶元素
	L->top=L->top->next;//将原来的栈顶元素下面的一个元素的地址给top
	L->count--;//计数减一
	free(p);//将弹出栈的元素释放内存空间
	return OK;
}

int main()
{


	system("pause");
	return 1;

}

  

大话数据结构之栈的链式存储结构

标签:

原文地址:http://www.cnblogs.com/yanliang12138/p/4328404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!