首页 > 其他分享 >数据结构练习笔记——顺序栈的基本操作

数据结构练习笔记——顺序栈的基本操作

时间:2023-07-23 10:24:42浏览次数:37  
标签:sqstack int top 笔记 base 基本操作 stacksize 数据结构

顺序栈的基本操作

【问题描述】按照要求完成顺序栈的设计
【输入形式】无
【输出形式】20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

#include  <iostream>
using  namespace  std;
#include  <stdlib.h>
#include <stdio.h>
#define  STACKSIZE  10
#define  INCRE  2
struct  sqstack{
        int  *base;
        int  top;
        int  stacksize;
};
void  initStack(sqstack  &s){
	s.base=(int*)malloc(STACKSIZE*sizeof(int));
	s.top=0;
	s.stacksize=STACKSIZE;
}//顺序栈的初始化

bool  stackEmpty(sqstack  s){
        return  s.top==0;
}//判断栈是否空
bool  stackFull(sqstack  s){
        return  s.top>=s.stacksize;
}//判断栈是否满

void  push(sqstack  &s,int  e){ 
	if(stackFull(s)){
		s.base=(int*)realloc(s.base,(s.stacksize+INCRE)*sizeof(int));
		s.stacksize+=INCRE;
	}
	s.base[s.top++]=e;
}//进栈

int  pop(sqstack  &s){  
	s.top--;
	return s.base[s.top];
}//出栈

int  gettop(sqstack  &s){  
	return s.base[s.top];
}//获取栈顶元素
//以上为顺序栈的基本操作
int  main(){
        sqstack  s;
        initStack(s);
        for(int  i=1;i<=20;i++){
                push(s,i);
        }//1~20顺序进栈
        while(!stackEmpty(s)){
                cout<<pop(s)<<"  ";
        }
}

记录一些数据结构学习过程的习题代码,便于日后查看。如有错误,欢迎交流指正。

标签:sqstack,int,top,笔记,base,基本操作,stacksize,数据结构
From: https://www.cnblogs.com/zhuannnn/p/17574725.html

相关文章

  • 网络流学习笔记
    1.一些基本定义网络网络是指一个有向图\(G=(V,E)\)。每条边\((u,v)\inE\)都有一个权值\(c(u,v)\),称之为容量(Capacity),当\((u,v)\notinE\)时有\(c(u,v)=0\)。其中有两个特殊的点:源点(Source)\(s\inV\)和汇点(Sink)\(t\inV,(s\neqt)\)。流设\(f(u,v)\)定义在二元组......
  • 读数据压缩入门笔记09_多媒体数据压缩
    1. 压缩分类1.1. 多媒体数据压缩(media-specificcompression)1.2. 通用压缩(generalpurposecompression)2. 有损压缩算法2.1. 为了使数据压缩得更小,可以牺牲多媒体的质量这样的数据转换2.2. 针对特定的多媒体文件2.2.1. 针对图像文件的算法就不太适用于音频文件2.3.......
  • python数据结构类型从入门到精通
    Python是一种灵活且强大的编程语言,它提供了丰富的数据类型和数据结构,使得我们可以有效地组织和操作数据。本文将介绍Python中常见的数据类型和数据结构,包括数字、字符串、列表、元组、字典和集合,并通过相关代码进行讲解。一、数字Python中的数字类型包括整数(int)、浮点数(float)和......
  • [C#基础学习]一些自带的常用数据结构
    System.Collections.ArrayList一个能储存任何数据类型的list,可用函数:​ Add:添加一个内容。​ AddRange:批量增加,将另一个ArrayList添加到末尾。​ Insert:在特定位置插入一个值。​ Remove:正序遍历删除第一个对应值。​ RemoveAt:删除数组位置对应元素。​ Clear:清空ArrayLis......
  • Django学习笔记:第三章D的路由和视图
    1.网站的入口--路由和视图URL是网站Web服务的入口。用户在浏览器输入URL发出请求后,django会根据路由系统,运行对应的视图函数,然后返回信息到浏览器中。1.1认识路由创建项目时,会自动生成urls.文件,文件中定义了项目的路由信息,成为项目的路由解析入口。在自建的应用中可以手动配置......
  • 【学习笔记】Git
    Git一、git的安装1.官网:Git(git-scm.com)速度较慢2.淘宝镜像:http://npm.taobao.org/mirrors/git-for-windows/速度快 下载完后直接无脑安装这一步是选择git的默认文本编辑器,我的选择是vscode 安装完成后,鼠标右键,打开GitBashHere就能看到git的命令窗口了。安......
  • 001运动控制卡使用笔记
     一、驱动器拨码设置SW1-SW3: OFFONOFF(8号)SW4-SW6: ONOFFON或ONONOFF(2或3号 本教程使用3号)  实物设置 二、运动控制卡初始IP地址:192.168.0.11连接运动卡打开ZDevelop3.10.01Alpha软件,在控制器选项选择连接 输入初始ip192.168.0.11然后点击......
  • CSS2.1规范笔记——10 视觉格式化模型细节
    视觉格式化模型细节包含块的定义元素(生成的)盒的位置有时候是根据一个特定的矩形计算的,叫做元素的包含块(containingblock)。元素包含块的定义如下:元素包含块其为根元素。其包含块是一个被称为初始包含块的矩形。对连续媒体,尺寸取自视口的尺寸,并且被固定在画布开......
  • CSS2.1规范笔记——9.4 常规流
    常规流常规流中的盒属于一个FC,可能是BFC或是IFC中的一个。块级盒参与BFC,行内级盒参与IFC。BFCBFC的产生条件:float:left|rightposition:absolute|fixeddisplay:inline-block|table-cell|table-caption(以及匿名的表格元素)overflow:hidden|auto|scrollBFC的布局......
  • CSS2.1规范笔记——9.5 浮动
    浮动一个浮动盒会向左或向右移动,直到其外边界挨到包含块边界或者另一个浮动盒的外边界。如果存在行框,浮动盒的上外(边界)会与当前行框的上(边界)对齐。如果没有足够的水平空间来浮动,它会向下移动,直到空间合适或者再没出现过其他浮动。因为浮动盒不在常规流内,在浮动盒之前或者之后创......