java、C语言实现数组模拟栈
java:
public class ArrayStack {
private int[] data;
private int top;
private int size;
public ArrayStack(int size) {
this.data = new int[size];
this.size = size;
this.top = -1;
}
public boolean isEmpty() {
if (this.top == -1) {
return true;
}
return false;
}
public boolean push(int x) {
if (this.top == this.size - 1) {
return false;
} else {
this.top++;
this.data[top] = x;
return true;
}
}
public int pop() {
if (isEmpty()) {
return -1;
}
return data[top--];
}
}
c语言:
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
typedef struct Stack
{
int data[MAX];
int top;
}Stack; void initStack(Stack *stack)
{
stack->top=-1;
} int isEmpty(Stack stack)
{
if(stack.top==-1)
{
return 1;
}
return 0;
} int push(Stack *stack,int x)
{
if(stack->top==MAX-1)
{
return 0;
}
else
{
stack->top++;
stack->data[stack->top]=x;
return 1;
}
} int pop(Stack *stack,int *x)
{
if(isEmpty(*stack))
{
return 0;
}
else
{
*x=stack->data[stack->top];
stack->top--;
return 1;
}
} int main()
{
Stack *stack=(Stack*)malloc(sizeof(Stack));
initStack(stack);
push(stack,1);
push(stack,2);
push(stack,3);
push(stack,4);
int x,y;
pop(stack,&x);
pop(stack,&y);
printf("%d,%d\n",x,y);
return 0;
}
原理一样,但是用java写会感觉更舒服,用面向对象的思想比较清楚。
java、C语言实现数组模拟栈的更多相关文章
- Java连载69-接受输入、用数组模拟栈
一.编写一个酒店管理系统 1.直接上代码 package com.bjpowernode.java_learning; public class D69_1_ { //编写一个程序模拟酒店的管理系 ...
- 数组模拟栈(C语言)
用数组模拟栈的实现: #include <stdio.h> #include <stdlib.h> #define STACK_SIZE 100 typedef struct ...
- Java数组模拟栈
一.概述 注意:模拟战还可以用链表 二.代码 public class ArrayStack { @Test public void test() { Stack s = new Stack(5); ...
- c语言学习,模拟栈操作
1.stack.c模拟栈操作函数的实现 #include<stdio.h> #include<stdlib.h> ; static char *stack;//数据栈 ;//栈 ...
- Hdu 3887树状数组+模拟栈
题目链接 Counting Offspring Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- JavaScript数组模拟栈和队列
*栈和队列:js中没有真正的栈和队列的类型 一切都是用数组对象模拟的 栈:只能从一端进出的数组,另一端封闭 FILO 何时使用:今后只要仅希望数组只能从一端进 ...
- LeetCode 155 - 最小栈 - [数组模拟栈]
题目链接:https://leetcode-cn.com/problems/min-stack/description/ 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的 ...
- 数据结构(3):java使用数组模拟堆栈
堆栈原理: 数组模拟堆栈: //数组模拟栈 class ArrayStack{ //栈顶 private int top = -1; private int maxSize; private int[ ...
- java模拟栈的操作
栈是一种有序列表,可以使用数组的结构来储存栈的数据内容 思路 1. 创建一个栈类StackArray 2. 定义一个top来模拟栈顶,初始化为-1 3. 入栈: 当有数据加入到栈的时候 top++ s ...
随机推荐
- vue html页面打印功能vue-print
vue项目中,HTML页面打印功能.在项目中,有时需要打印页面的表格, 在网上找了一个打印组件vue-print-nb 使用方式 安装 npm install vue-print-nb --save ...
- python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据
python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...
- IO概念解析------同步异步阻塞非阻塞
各个IO Model的比较如图所示: 阻塞和非阻塞强调的是程序在等待调用结果(消息,返回值)时的状态. 阻塞调用是指调用结果返回之前,当前线程会被挂起.调用线程只有在得到结果之后才会返回.非阻塞调用 ...
- 实验Complex
#include<iostream> #include<cmath> using namespace std; class Complex { public: Complex ...
- MongoDB数据库初探 --- 认识与安装 && Mongoose安装
注意: monogdb数据在使用之后必须及时 mongodb.close()否则后台崩溃. 第一部分: MySQL数据库是关系型数据库,但是使用node开发时多用MongoDB数据库,两者各有优势,所 ...
- jQuery validate 设置失去焦点就校验和失去焦点就表单校验是否通过
js部分 html部分 自定义样式: /*自定义validate覆盖掉了 validate 里面默认的显示样式*/ label.error{ background:url(${pageContext. ...
- android studio Cannot resolve symbol '@drawable/XXX'等问题解决办法
方法1."Build " -> "Clean project" 方法 2."Tools" -> "Android&qu ...
- 分析apache日志,统计访问量
cat nondomain_access_log.20090722 |awk '{print $1}'| sort | uniq -c |sort -nr
- Firebird hash join
Firebird 现可支持哈希连接(hash join),各中大型数据库,哈希连接已成为平常,相对于循环嵌套连接(Nested Loop Join),在数据量较大的情况下,哈希连接性能较好. 由于 F ...
- [转]Install ASP.NET MVC 4 for Visual Studio 2010
本文转自:https://docs.microsoft.com/en-us/aspnet/mvc/mvc4