栈和队列 - 栈和队列的应用实例 - 栈的应用实例(一)

 我来答
户如乐9318
2022-10-13 · TA获得超过6636个赞
知道小有建树答主
回答量:2559
采纳率:100%
帮助的人:137万
展开全部

  栈和队列的应用非常之广 只要问题满足后进先出和先进先出原则 均可使用栈和队列作为其数据结构

  栈的应用

   数制转换

  将一个非负的十进制整数N转换为另一个等价的基为B的B进制数的问题 很容易通过 除B取余法 来解决

  【例】将十进制数 转化为二进制数

  解答 按除 取余法 得到的余数依次是 则十进制数转化为二进制数为

  分析 由于最先得到的余数是转化结果的最低位 最后得到的余数是转化结果的最高位 因此很容易用栈来解决

  转换算法如下

  typedef int DataType;//应将顺序栈的DataType定义改为整型

  void MultiBaseOutput (int N int B)

  {//假设N是非负的十进制整数 输出等值的B进制数

  int i;

  SeqStack S;

  InitStack(&S);

  while(N){ //从右向左产生B进制的各位数字 并将其进栈

  push(&S N%B); //将bi进栈 <=i<=j

  N=N/B;

  }

  while(!StackEmpty(&S)){ //栈非空时退栈输出

  i=Pop(&S);

  printf( %d i);

  }

  }

lishixinzhi/Article/program/sjjg/201311/23920

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式