其实这篇文章开出来主要是水文章%%  %%

  栈——后进先出的婊

  特点:只能在某一端插入和删除的特殊的线性表

  操作:进栈——PUSH—>向栈顶插入元素

     出栈——POP——>将栈顶元素删除

  实现:

    定义一个长为n的数组,用一个top(相当于指针)指向栈顶,若top=0,则表示栈空;top=n,则表示栈满。

  进栈时top+1,出栈时top-1.  栈指针(top)在运算中永远都指向栈顶

    若top>n(n为栈的长度),则为溢出,做出错处理;若top<0,则为下溢,同样做出错处理

     【具体讲就是——进栈时——>检查栈是否已满(top是否等于n)——>不满则进栈,满则做出错处理】  

     【出栈时——>检查栈是否为空(top是否等于0)——>不为空则出栈,栈空则做出错处理】

  大致实现如下:

#dfine n 100

void push(int s[],int top,int x)
{
  if(top==n)
    cout<<"overflow";
  else
  {
    top++;
    s[top]=x;
  }
} void pop(int s[],int top,int x)
{
  if(top==0)
    cout<<"underflow";
  else
  {
    y=s[top];
    top--;
  }
}

  

  十进制转d进制

  刷666的都坐下,基本操作

  我们用类似于堆栈数组模拟的办法来实现十进制转d进制

  【算法原理:对十进制下的n转为d进制时,有:n=(n/d)*d+n%d】(好吧其实就是短除法)

  如(1348)10——>(2504)8

  ①1348/8==168 1348%8==4      ^

  ②168/8==21   168%8==0    ^  |  ^

  ③21/8==2       21%8==5          |

  ④2/8==0         2%8==2       |

  

  按着箭头方向,倒着输出结果,就是(1348)10——>(2504)8 的过程了       

  程序实现如下:

#include<cstdlib>
#include<iostream>
using namespace std;
#dfine size 100
int a[size+1],n,d,i=0;
int main()
{
  cout<<"please enter a number(N) base 10:";
  cin>>n;
  cout<<endl;
  cout<<"please enter a number(d):"
  cin>>d;
 do
  {
    a[++i]=n%d;
    n=n/d;
  }
  while(n!=0);
  for(int j=i;j>=1;j--)
  {
    cout<<a[j];
  } return 0;
}

  

//栈的应用:

  1、用一个指针来记录“栈顶”;

  2、将元素入栈,然后出栈,达到倒序输出的目的;

数据结构之【栈】+十进制转d进制(堆栈数组模拟)的更多相关文章

  1. 十进制转n进制

    #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #defi ...

  2. ->code vs 1474 十进制转m进制

    1474 十进制转m进制  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解  查看运行结果   题目描述 Description 将十进制数n转换成m进 ...

  3. wikioi 1474 十进制转m进制

    /*===================================== 1474 十进制转m进制 题目描述 Description 将十进制数n转换成m进制数 m<=16 n<=1 ...

  4. 十进制转为x进制的递归代码

    十进制转为x进制的递归代码 #include <stdio.h> void fun(int n,int x) { ) return; else { fun(n/x,x); printf(& ...

  5. 1474 十进制转m进制

    1474 十进制转m进制  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 将十进制数n转换成m进制数 m ...

  6. C++十进制到任意进制

    #include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #in ...

  7. [leetcode]168. Excel Sheet Column Title表格列名编码(十进制和多进制相互转换)

    其实就是一道,十进制转多进制的题 十进制转多进制就是从后边一位一位地取数. 这种题的做法是,每次用n%进制,相当于留下了最后一位,然后把这位添加到结果最前边.结果需要转为进制的符号. 下一次循环的n变 ...

  8. 将n进制的数组压缩成字符串(0-9 a-z)同一时候解压

    比如一个3进制的数组: [1 1 2 2 2 0 0] 用一个字符串表示... 此类题目要明白两点: 1. 打表:用数组下标索引字符.同一时候注意假设从字符相应回数字: int index = (st ...

  9. java:数据结构(二)栈的应用(进制转换全收集)

    说到进制转换,java已经封装了基本的方法,在竞赛中使用封装的方法自然能节省大量时间 另一位仁兄介绍的封装好的方法: https://blog.csdn.net/m0_37961948/article ...

随机推荐

  1. IIS下自定义错误页面配置的两种方式(亲测可行)--IIS服务器

    网站自定义错误页面的设置,大家应该都知道它的重要性……不多说,下面带大家一步步在IIS下设置网站自定义错误页面…… 1.首先进入你的网站主页,找到[错误页](注意是IIS下的错误页不是.NET错误页) ...

  2. R学习笔记 第五篇:数据变换和清理

    在使用R的分组操作之前,首先要了解R语言包,包实质上是实现特定功能的,预先写好的代码库(library),R拥有大量的软件包,许多包都是由某一领域的专家编写的,但并不是所有的包都有很高的质量的,在使用 ...

  3. Muduo阅读笔记---net(三)

    muduo-manual手册一开始就介绍了“Muduo是基于Reactor模式的网络库”,因此必须对Reactor模式有一定的了解才行:另外,文中还提到EventLoop,这些知识点我目前都不太了解.

  4. 浏览器怎么解析一个hmtl文档

    注意 link里面的css文件是并行请求下载的 script里面的js文件是同步请求下载的 html页面中的语句都是从上往下执行的 浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到 def ...

  5. springmvc+quartz简单实现定时调度

    一.简介:Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十 ...

  6. CSS3详解:transform、transition

    CSS3 transform是什么? transform的含义是:改变,使-变形:转换 CSS3 transform都有哪些常用属性? transform的属性包括:rotate() / skew() ...

  7. Vim常用操作-Nginx配置文件批量加注释。

    刚接触 Vim 会觉得它的学习曲线非常陡峭,要记住很多命令.所以这个系列的分享,不会教你怎么配置它,而是教你怎么快速的使用它. 本期我们要实现给 Nginx 配置文件批量注释的功能,先来看效果: 操作 ...

  8. 阿里云ecs初始化磁盘后远程连接不到服务器

    阿里云初始化磁盘后远程连接不到服务器 报错: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ... 原因:阿里云ecs第一次链接服务器之后会在本地电 ...

  9. 基于IWICImage的截图代码

    截图方式和以前一样, 用GetDC, 保存为JPG的方式改用IWICImage接口, 在我机器上 1920*1080 大概花费70毫秒左右, 比用TJPEGImage快了一倍多(TJPEGImage需 ...

  10. 无状态的web应用(单个py文件的Django占位图片服务器)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 阅读本文建议了解Django框架的基本工作流程,了解WSGI应用,如果对以上不是很清楚,建议结 ...