java、C语言实现数组模拟栈
2024-09-02 14:35:19
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写会感觉更舒服,用面向对象的思想比较清楚。
最新文章
- Qt 拷贝文件目录
- Android 内存泄漏的一些情况。
- WINDONWS7+VS2012+Cocos2d-x
- C# - 系统类 - 系统接口
- java中的IO二
- EasyuiAPI:基础
- java Runtime类
- requests_模拟登录知乎
- javase高级
- eclipse invalid zip archive lib
- Git基本命令 -- 别名 + 忽略 + 推送
- Beta阶段Scrum 冲刺博客合集
- 【Android】Android的进程优先级
- LeetCode--007--整数反转(java)
- Redis学习之路(005)- redis内存数据库C客户端hiredis API 中文说明
- Beta 反(tu)思(cao) &;&; 获小黄衫感言
- C++语言笔记系列之十六——赋值兼容规则&;amp;多继承的二义性
- 第一章 EL表达式常见用法
- [转]Docker 为什么这么火
- XML--将XML中数据提取出转换成表2