多栈运算
来源:互联网 发布:国际贸易统计数据库 编辑:程序博客网 时间:2024/04/24 10:13
多栈运算的算法思想:将多个链栈的栈顶指针放在一个一维指针数组中来统一管理,从而实现同时管理和使用多个栈。
多链栈示意图
实现代码如下:
#include<iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
#define M 10
typedef struct node
{
int data;
struct node *next;
}LinkStackNode, *LinkStack;
LinkStack top[M];
//第i号栈进栈操作
int Pushi(LinkStack top[M], int i,int x)//将元素x进入第i号链栈
{
LinkStackNode *temp;
temp = (LinkStackNode *)malloc(sizeof(LinkStackNode));
if (temp==NULL)//申请空间失败
{
return FALSE;
}
temp->data= x;
temp->next = top[i]->next;
top[i]->next = temp;//修改当前栈顶指针
return TRUE;
}
//第i号栈出栈操作
int Pop(LinkStack top[M], int i,int *x)//将第i号栈的栈顶元素弹出,放到x所指的存储空间中
{
LinkStackNode *temp;
temp = top[i]->next;
if (temp == NULL)//第i号栈为空栈
{
return FALSE;
}
top[i]->next = temp->next;
*x=temp->data ;
free(temp);//释放存储空间
return TRUE;
}
本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1772840
- 多栈运算
- 顺序栈,链栈,多栈运算
- 使用C语言与栈实现简单多则运算计算器(包括括号优先级运算)
- 顺序栈的运算
- 栈的基本运算
- 栈(运算操作)
- 用栈实现(+-*/)运算
- 数据结构栈的运算
- 数据结构栈的运算
- 栈-运算后缀表达式
- 简化栈运算
- 顺序栈基本运算
- 多目运算符
- “<<”运算“+ - * /”
- && || 运算
- 运算
- 运算
- 运算^
- 顺序栈的基本操作:初始化、进栈、出栈、读栈顶元素
- 多栈共享技术,双端栈的初始化、进栈、出栈操作
- 链队列的初始化、入队、出队等操作实现
- 循环队列的初始化、入队、出队等基本操作
- 链栈的基本操作
- 多栈运算
- Flash的按钮链接在网页的中的使用
- 汉诺塔问题的递归解法
- 求f(k)=k^k(k=1...n)的前n项和
- 二分查找算法的递归、循环实现及其缺陷
- 稀疏矩阵的列序递增法和一次定位快速转置法
- 二叉树的先序、中序、后序遍历等基本操作c++实现
- 文本处理,将交互组数据转化成邻接矩阵
- 打印菜单界面,用c语言实现二叉树的基本操作