`
michelecindy
  • 浏览: 174934 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用java写一个堆践程序

    博客分类:
  • Java
阅读更多
public class ArrayStack {
	Object[] m_elements;
	int m_size;
	
	public ArrayStack(int len) {
		m_elements = new Object[len];
		m_size = 0;
	}

	public ArrayStack() {
		this(50);
	}

	// insert onto stack 
	public void push(Object element) {
		m_elements[m_size] = element;
		m_size++;
	}

	// return and remove the top element 
	public Object pop() {
		if (!this.isEmpty()) {
			Object obj = m_elements[m_size - 1];
			m_elements[m_size - 1] = null;
			m_size--;

			return obj;
		} else {
			return null;
		}
	}

	// return the top element 
	public Object top() {
		if (!this.isEmpty()) {
			return m_elements[m_size - 1];
		} else {
			return null;
		}
	}

	// return 1 --> is empty 
	// return 0 --> is not empty 
	public boolean isEmpty() {
		return this.size() == 0;
	}

	public int size() {
		return m_size;
	}
}


使用链表实现(单链表) :
public class Stacklist {
	Node m_header;

	int m_size;

	public void ListStack() {
		m_header = null;
		m_size = 0;
	}

	public void push(Object value) {

		m_header = new Node(value, m_header);

	}

	public Object pop() {
		if (!this.isEmpty()) {
			throw new RuntimeException("Stack underflow");
		}

		Object obj = m_header.element;

		m_header = m_header.next;

		return obj;
	}

	// return reference to most recently added elemenet
	public Object peek() {
		if (!this.isEmpty()) {
			throw new RuntimeException("Stack underflow");
		}

		return m_header.element;
	}

	public boolean isEmpty() {
		return this.size() == 0;
	}

	// return the number of the queue's elements;
	public int size() {
		return m_size;
	}
}



链表的需要用到一个结点类 Node.java 代码如下

public class Node {
	Object element;
	Node next;

	public Node(Object theElement) {
		this(theElement, null);
	}

	public Node(Object theElement, Node n) {
		element = theElement;
		next = n;
	}

	public Object getElement() {
		return element;
	}

	public void setElement(Object element) {
		this.element = element;
	}

	public Node getNext() {
		return next;
	}

	public void setNext(Node next) {
		this.next = next;
	}
}

分享到:
评论

相关推荐

    java写文件内容程序

    java写文件内容程序java写文件内容程序java写文件内容程序java写文件内容程序java写文件内容程序java写文件内容程序java写文件内容程序java写文件内容程序java写文件内容程序java写文件内容程序java写文件内容程序...

    用Java写的一个QQ聊天程序

    【标题】:“用Java写的一个QQ聊天程序” 这个标题揭示了我们的主要话题是关于一个使用Java编程语言实现的QQ聊天程序。Java是一种广泛使用的、面向对象的编程语言,以其跨平台性和“一次编写,到处运行”的特性而...

    用java编写的一个简单的计算器小程序

    用java编写的一个简单的计算器小程序 希望对大家有所帮助

    java写文件的一个小程序

    java写文件的一个小程序,很小很小的 java写文件的一个小程序,很小很小的

    java写的一个时钟小程序

    java 写的 时钟小程序 代码注释详细 代码 拿了 就能用

    java判断回文程序

    java作业 用java实现判断回文程序免费下载

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java写的局域网聊天程序

    自己用java写的局域网聊天程序 嘿嘿 摆上来 有人要不?

    JAVA画笑脸小程序

    关于画JAVA笑脸的小程序,简单易懂,适合初学者临摹与修改

    Java编写的仿windows自带计算器程序(源代码)

    用Java编写的仿windows自带计算器程序的源代码,可用任何文本编辑器打开。 从界面到功能80%与windows计算器程序一致,适合GUI编程初学者学习。 技术特点:OOP思想,MVC,内部类。

    java程序自动重新启动

    在Java编程中,有时我们需要设计一个程序来实现自动重启的功能,比如在系统出现异常或者更新后需要自动恢复服务。在给定的标题"java程序自动重新启动"中,我们可以理解这是一个实现了自动重启逻辑的Java程序。描述...

    一个用JAVA写的清除EXE病毒文件的代码

    这个标题为“一个用JAVA写的清除EXE病毒文件的代码”的项目,显然是利用Java来编写的一种防病毒解决方案,主要针对的是可执行文件(EXE)的病毒清理。 描述中提到的“清除EXE病毒文件的代码”,意味着这个Java程序...

    http客户端java程序

    http客户端java程序,代码质量高,经过测试。

    自考java 04747《Java语言程序设计(一)》教材电子版

    `表示声明了一个整型变量age并赋值为25。 2. **数据类型**:Java有两大类数据类型:基本数据类型(如int、char、boolean)和引用数据类型(如类、接口、数组)。理解不同类型的特点和使用场景是编写有效Java代码的...

    java 3d 人体行走模拟程序

    java 3d 人体行走模拟程序 主要运用TransformGroup,Behavior

    JAVA写的网络抓包分析程序

    本程序利用了JPCAP库,这是一个Java接口,可以访问网络接口进行数据包捕获。JPCAP是Java Packet Capture的缩写,它是对libpcap(在Windows上是winpcap)的封装,提供了跨平台的网络数据包捕获能力。 首先,我们需要...

    Java程序设计习题集下载

     实用性:《Java程序设计习题集》每章都含有一些趣味题,营造了一种轻松而快乐的学习氛围,努力培养和提高学生的学习乐趣,同时也使学生容易产生学习成就感。  趣味性:习题基本上覆盖了程序员在编写Java程序时...

    一些比较有意思的Java小程序

    总之,"一些比较有意思的Java小程序"是一个很好的学习资源,它提供了实践和探索Java编程的多种途径。对于那些想要踏入Java世界的新手来说,这是一个很好的起点,也是不断提升编程技能的良好平台。

    java编写ATM柜员机模拟程序(GUI+javaSwing+MySQL).zip

    java编写的ATM模拟程序,GUI界面,连接Mysql数据库,实现了管理员界面(增删改查),用户界面(取款,存款,查询,安全退出,修改密码,转账,查询记录,导出记录),详情请看我的博客 ...

Global site tag (gtag.js) - Google Analytics