为了账号安全,请及时绑定邮箱和手机立即绑定

偽代碼和C++的轉換

偽代碼和C++的轉換

慕用3498290 2018-04-29 00:00:12
设从键盘输入一整数的序列:a1,a2,a3,..,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将aⅰ进栈;当aⅰ=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。 请分别用伪代码和C++完成。
查看完整描述

1 回答

?
Sival_Eulyn

TA贡献8条经验 获得超2个赞

伪代码:

while getEleFromStream -> ele

  if ele != -1

    if fullStack

      logout

    else

      push ele

  else

    if emptyStack

      logout

    else

      print pop

C++:

#include <stack>

#include <iostream>

using namespace std;

typedef stack<int> Stack;

const int stack_limit = 20;

void logout(const char *info);

int getEleFromStream(Stack &stk); // return errno_t [0 == normal, 1 == full, -1 == empty]

                                                        // process will exit while the empty condition take place

int main()

{

  Stack stk;

  while (getEleFromStream(stk) != -1);

  return 0;

}

void logout(const char *info)

{

  cout << info << endl;

}

int getEleFromStream(Stack &stk)

{

  int ele = 0;

  cin >> ele;

  if (ele != -1)

    if (stk.size() == limit)

    {

      logout("Full Stack!");

      return 1;

    } else

      stk.push_back(ele);

  else

    if (stk.size() == 0)

    {

      logout("Empty Stack!");

      return -1;

    } else

      cout << stk.pop() << endl;

  return 0;

}

查看完整回答
反对 回复 2018-05-01
  • 1 回答
  • 0 关注
  • 1036 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信