• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

XiaoXiaoli

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

数据结构_栈

栈( stack   [stæk] )

栈的特点:先进后出,后进先出。

 

栈的实现方式:

  (1)顺序栈-通过数组实现

  (2)链式栈

 

栈的操作(运算):

  (1)初始化栈

  (2)判栈空

  (3)判栈满

  (4)清除栈

  (5)入栈

  (6)出栈

  (7)返回栈顶元素

 

 

栈中的元素,在入栈时首先会被存放在栈顶,一般操作栈也就是对栈顶元素进行操作。

 

 

c语言实现

 1 /* 栈的声明-数组实现 */
 2 #ifndef _Stack_h
 3 struct StackRecord;
 4 typedef struct StackRecord *Stack;
 5 
 6 #endif
 7 
 8 struct StackRecord
 9 {
10   int Capacity;
11   int TopOfStack;
12   ElementType *Array;
13 };

 

 

java代码实现

// 定义ArrayStack 表示栈
class ArrayStack {
	private int top = -1; // top表示栈顶 初始化为-1
	private int maxSize = 0; // 栈的大小
	private int[] stack = {}; // 数组模拟栈,数据就放在该数组
	
	//构造器
	public ArrayStack(int maxSize) {
		this.maxSize = maxSize;
		stack = new int[this.maxSize];
	}
	
	//栈满
	public boolean isFull() {
		return top == maxSize -1;
	}
	
	//栈空
	public boolean isEmpty(){
		return top == -1;
	}
	
	//入栈-push
	public void push(int value) {
		//判断栈是否满
		if(isFull()) {
			System.out.println("栈满");
			return;
		}
		top++;
		stack[top] = value;
	}
	
	//出栈-pop
	public int pop() {
		if(isEmpty()) {
			return -1;
		}
		int value = stack[top];
		top--;
		return value;
	}
	
}

  

 

posted on 2020-12-07 23:40  XiaoXiaoli  阅读(73)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3