《数据结构》实验报告
实验序号 4 实验项目名称栈的操作
附源程序清单
1.
#include<iostream>
#define MaxSize 100using namespace std;typedef char ElemType;type de f s truct
{
ElemType data[MaxSize] ;int top;
}S qStack;void InitStack(SqStack*st)//初始化栈
{st->top=-1;
}int StackEmpty(SqStack*st) //判断栈为空{if(st->top==-1)return 0;//为空elsereturn-1;//不为空
}void Push(SqStack*st,ElemType x) //元素进栈{if(st->top==MaxSize-1)
{printf("栈上溢出!\n");
}else
{st->top++; //移动栈顶位置st->data[st->top]=x; //元素进栈
}
}void Pop(SqStack*st,ElemType&e) //出栈{if(st->top==-1)
{printf("栈下溢出\n");
}else
{e=st->data[st->top] ; //元素出栈st->top--; //移动栈顶位置}
}int main()
{
SqStack L;
SqStack*st=&L;
ElemType c;int i;
InitStack(st);printf("输入回车结束入栈");while((c=getchar())!='\n')
{if(c=='(')
Pu s h(st,c);if((i=StackEmpty(s t))==-1)
{if(c==')')
Pop(st,c);
}if(c==')'&&(i=StackEmpty(st))==0){printf("右括号多出,配对失败");goto loop;
}
}if(StackEmpty(st)==-1)printf("左括号多出,配对失败");elseprintf("配对成功");loop:return 0;
}
2.
#include<iostream>
#define MaxSize 100using namespace std;typedef int ElemType;type de f s truct
{
ElemType data[MaxSize] ;int top;
}S qStack;void InitStack(SqStack*st)
{st->top=-1;
}int StackEmpty(SqStack*st)
{return(st->top=-1);
}void Push(SqStack*st,ElemType *x,int k){int i;for(i=1;i<k;i++)
{if(st->top==MaxSize-1)
{printf("栈上溢出");
}else
{st->top++;st->data[st->top]=x[i-1];printf("%d\n",st->data[st->top]);}
}
}void Pop(SqStack*st,ElemType&e,int k){int i;for(i=1;i<k;i++)
{if(st->top==-1)
{printf("栈下溢出");
}else
{e=st->data[st->top] ;printf("%d\n",e);st->top--;
}
}
}int main()
{
SqStack L;
SqStack*st=&L;
ElemType e;
ElemType num[9]={1,2,3,4,5,6,7,8,9};InitStack(st);printf("入栈元素是:\n");
Pu s h(st,nu m,10);printf("出栈元素是:\n");
Pop(st,e,10);return 0;
}
3.
#include<iostream>
#include<stack>using namespace std;int main()
{char a,i;stack<char>s;while((a=getchar())!='\n')
{
switch(a)
{case'(':s.pu s h(a);//入栈continue;case'[':s.pu s h(a);continue;case')':if(!s.empty())
{if(s.top()=='(')
{s.pop(); //出栈continue;
}else
{printf("配对失败1");goto loop;
}
}case']':if(!s.empty())
{if(s.top()=='[')
{s.pop(); //出栈continue;
}else
{printf("配对失败2");goto loop;
}s.pop(); //出栈}
}
}if(s.e mpty())
{printf("配对成功");
}else
{printf("配对失败3");}loop:return 0;
}
俄罗斯vps云服务器商家推荐!俄罗斯VPS,也叫毛子主机(毛子vps),因为俄罗斯离中国大陆比较近,所以俄罗斯VPS的延迟会比较低,国内用户也不少,例如新西伯利亚机房和莫斯科机房都是比较热门的俄罗斯机房。这里为大家整理推荐一些好用的俄罗斯VPS云服务器,这里主要推荐这三家:justhost、ruvds、justg等俄罗斯vps主机,方便大家对比购买适合自己的俄罗斯VPS。一、俄罗斯VPS介绍俄罗斯...
萤光云怎么样?萤光云是一家国人云厂商,总部位于福建福州。其成立于2002年,主打高防云服务器产品,主要提供福州、北京、上海BGP和香港CN2节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。目前萤光云推出北京云服务器优惠活动,机房为北京BGP机房,购买北京云服务器可享受6.5折优惠+51元代金券(折扣和代金券可叠加使用)。活动期间还支持申请免费试用,需提交工单开通免费试用体验...
妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款到网站余额,超过2天...