栈是具有后进先出的特点,以下是栈的顺序实现,通过数组完成的。
public class ArrayStack<E> {
private E[] data = (E[]) new Object[10];
private int top = -1; //用来指示存到数组的哪个位置了
//判断栈是否为空
public boolean isEmpty() {
return top < 0;
}
//出栈操作,返回栈顶元素并删除
public E pop() {
if (isEmpty()) {
return null;
} else {
E temp = data[top];
top--;
return temp;
}
}
//返回栈顶元素但并不删除
public E peek() {
if (isEmpty()) {
return null;
} else {
return data[top];
}
}
//入栈操作
public void push(E target) {
//如果数组达到极限,建立新数组并拷贝原来的到新数组中,并使用新数组
if(top==data.length-1){
E[] tempdata=(E[])new Object[data.length+5];
int j=0;
for(int i=0;i<data.length;i++){
tempdata[j++]=data[i];
}
data=tempdata;
}
top = top + 1;
data[top] = target;
}
}
分享到:
相关推荐
这个程序实现了顺序栈的初始化,入栈,出栈、取顺序栈的顶栈元素,退出的作用。/***顺序栈的实现***/ #include #include using namespace std; //顺序栈定义 #define OK 1 #define ERROR 0 #define ...
顺序栈是栈的一种类型,这里采用C++的模板来实现顺序栈
栈是一种特殊的线性表,它只能在线性表的一端进行插入删除操作,允许插入删除的一端称为栈顶,另...既然栈也是线性表,那么栈就可以通过线性表来实现,实现顺序栈只需在顺序表的插入删除操作时,只限定在一端操作即可。
用c实现顺序栈 c实现顺序栈 c顺序栈 顺序栈实现 用c实现顺序栈 c实现顺序栈 c顺序栈 顺序栈实现
栈的顺序栈形式,简易的实现,push() pop() top() size() empty()
顺序栈实现括号配对
顺序栈的实现源码,包括初始化、去栈顶元素、进栈、弹栈等操作。
使用顺序线性表实现,含有如下功能: 1.创建栈; 2.销毁栈; 3.清空栈; 4.进栈; 5.出栈; 6.获取栈顶元素; 7.获取栈的大小。
解决数据结构中利用C++来实现顺序栈的问题,
顺序栈入栈出栈实现源码
压缩包内为栈的工程包;工程包括顺序栈、链栈的类的定义与实现;附适当注释;完全面向对象,类封装;测试类中用(纯)虚函数实现多态。
对已建立的顺序栈实现入栈、出栈、判栈空和判栈满等基本操作。 3.设计与编码 #include<stdio.h> #include<malloc.h> #define MAX_STACK 120 //栈的最大数据元素数目 typedef struct stack{ char item[MAX_STACK]; /...
实现链式栈和顺序栈的定义,分别创建一个栈。
C语言 栈的实现,文章《也没想象中那么神秘的数据结构-后来居上的“栈”》系列示例代码
使用顺序栈实现括号匹配
java模拟栈实现回文串的判断,适合新手学习!
栈的顺序存储与实现。采用顺序存储的方式实现栈,并实现了一些基本功能,包括创建、销毁、清空、出栈、入栈等一些常规的操作。其中包含的头文件dm01_SeqList.h保存在《线性表的顺序存储与实现》资源中。
实验一 顺序表、顺序队列和顺序栈的算法实现
数据结构 顺序栈基本操作