C++ 模拟栈 stacks (数据结构实验)
来源:互联网 发布:时时彩缩水软件 编辑:程序博客网 时间:2024/06/13 02:52
非常不喜欢链表操作, 又因为 c++ STL 库里 自带 stack 函数, 但是 实验课 需要自己写, 好吧
模仿STL stack 写到一个结构体中, 这让我习惯了stack 函数的人很舒服。
(1)输入一个十进制数,利用栈操作,将该数转换成n进制数。
(2)输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。
so easy、
#include <iostream>#include <string.h>#include <queue>#include <stdlib.h>#include <stack>#include <stdio.h>using namespace std;/*1)输入一个十进制数,利用栈操作,将该数转换成n进制数。(2)输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。*/const int n =12;const int nn=12;typedef struct Stack{ char *x; int top; int size; void InitStack() { x= (char *)malloc(n*sizeof(char)); top=0; size=n; } bool emptys() { if(top==0) return true; return false; } void Push_back(char num) { if(top>=size) { x= (char *) realloc(x,size+nn*sizeof(char)); if(!x) return; size+=nn; } x[top++]=num; } void Pop(char &num) { if(top==0)return; num=x[--top]; } char Gettop() { if(top==0) return -1; return x[top-1];// top 下一个 }}stacks;int main(){ stacks S; S.InitStack(); int num,z; char y=0; cin>>num>>z; while(num) { char xy; xy =(char) (num%z +'0'); S.Push_back(xy); num/=z; } while(!S.emptys()) { if(S.Gettop()<='9'&&S.Gettop()>='0') printf("%c",S.Gettop()); else printf("%c",S.Gettop()-'0'+'A'-10); S.Pop(y); } cout<<endl; stacks ST; ST.InitStack(); string str; cin>>str; int len=str.length(); for(int i=0;i<=len;i++) { if(str[i]=='('||str[i]=='['||str[i]=='{') ST.Push_back(str[i]); else if(str[i]==')'||str[i]==']'||str[i]=='}') ST.Pop(y); } printf(ST.emptys()?"YES\n":"NO\n"); return 0;}
阅读全文
0 0
- C++ 模拟栈 stacks (数据结构实验)
- 数据结构实验之栈:行编辑器(手写模拟栈)
- hdu-5818-Joint Stacks-栈模拟/左偏树
- HDU 5818 Joint Stacks [栈]【模拟】
- HDU 5818 Joint Stacks 栈模拟
- uva 120 Stacks of Flapjacks(模拟)
- 模拟(Joint Stacks,HDU 5818)
- 数据结构实验-停车场模拟系统
- 数据结构与算法分析c版的学习笔记之Lists,Stacks,and Queues(一)
- c语言实现数据结构中的栈(数组模拟)
- 数据结构实验之栈:行编辑器 数组模拟栈
- 数据结构实验 第二单元 汉诺塔(非递归,用栈模拟递归)
- 停车场的模拟管理(数据结构 C++)
- C语言数据结构链栈实现个位数计算式(数据结构第二次实验)
- 227.Mock Hanoi Tower by Stacks-用栈模拟汉诺塔问题(容易题)
- 《数据结构》实验三:栈和队列实验 (实验报告)
- 【HDU5818】Joint Stacks(模拟)
- hdu5818 Joint Stacks 数据结构
- Java components图表描述
- C#静态调用C++Dll导出函数,并在C++Dll中回调C#函数
- Resultful 访问本地 sql Server
- 继承——子类的实例化过程
- awk和sed的常规用法
- C++ 模拟栈 stacks (数据结构实验)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- Android学习笔记14---进度条的实现
- URI和URL的区别
- Cisco交换机 SNMP配置
- 小写数字转换大写
- 2017网易合唱团
- Ext Store
- Nginx为什么比Apache Httpd高效:原理篇